[php] Reg exp: ik word gek!

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Rexomnium
  • Registratie: September 2000
  • Laatst online: 17-09 16:07

Rexomnium

Vincam aut moriar

Topicstarter
Ik wil een reeks in een string in een variabele stoppen.
De string ziet er zo uit:
PHP:
1
$abseilen = "20041207-abseilen.jpg|360|305|ghbj)%>";


Ik wil alleen 20041207-abseilen.jpg hebben, de rest is niet belangrijk.

Dat stukje tekst heb ik weten te bereiken door de expressie:
PHP:
1
$text = ereg("[0-9]{8}-[^.]*[\.][a-zA-Z]{3}", $abseilen, $text);


Ik weet zeker dat dit werkt, want als ik
PHP:
1
$text = ereg_replace("[0-9]{8}-[^.]*[\.][a-zA-Z]{3}", "", $abseilen);

gebruik, dan is de genoemde reeks (20041207-abseilen.jpg) verdwenen.

Ereg werkt niet zoals ik zou willen, als ik de variabele $tekst echo, dan krijg ik array te zien. Ik wil juist hetgeen wat in die array staat. Help, plz, ik ben nu al de hele ochtend hiermee bezig.

[ Voor 21% gewijzigd door Rexomnium op 09-12-2004 13:29 ]

We zijn allemaal vaandeldrager in een optocht van gekwetsten.


Acties:
  • 0 Henk 'm!

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 21:37

mulder

ik spuug op het trottoir

Kun je dan niet gewoon alles afknippen na de .jpg?

oogjes open, snaveltjes dicht


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
"!^(.*?)|"

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

kan je niet "gewoon" exploden op | :?

Acties:
  • 0 Henk 'm!

  • Rexomnium
  • Registratie: September 2000
  • Laatst online: 17-09 16:07

Rexomnium

Vincam aut moriar

Topicstarter
Don Facundo schreef op donderdag 09 december 2004 @ 13:29:
Kun je dan niet gewoon alles afknippen na de .jpg?
Ja, dat kan, maar die jpg kan ook gif, png e.d. zijn. Ik wilde het graag op deze manier doen. De methode werkt hier wel in, maar als ik het later in een andere situatie wil gebruiken, zal het misschien niet werken. Ik wilde hier ook nog wat van leren :)

We zijn allemaal vaandeldrager in een optocht van gekwetsten.


Acties:
  • 0 Henk 'm!

  • kippetje01
  • Registratie: November 2001
  • Laatst online: 18-08 14:21
tja... een array kun je uitlezen door echo $array[0];
Dit geeft de eerste waarde in de array.
als je alle waarden in een string achterelkaar wil hebben moet je even kijken naar de implode en explode functies.

en ik raad je sterk aan om even naar http://nl.php.net/manual te surfen en daar de eigenschappen van de door jou gebruikte functies te bekijken. ereg() geeft namelijk een integer terug maar past een meegegeven array aan...

[ Voor 35% gewijzigd door kippetje01 op 09-12-2004 13:33 ]


Acties:
  • 0 Henk 'm!

Verwijderd

print_r($text); // krijg alle waardes van de array te zien, staat alleen je afbeelding niet in... komt door je reg


$abseilen = "20041207-abseilen.jpg|360|305|ghbj)%>";
echo substr($abseilen,0,strpos($abseilen,'|'));

voila

Acties:
  • 0 Henk 'm!

Verwijderd

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

// init
$regExp = "/^([0-9]{4})([0-9]{2})([0-9]{2})-(abseilen)/";
$stringToTest = "20041207-abseilen.jpg|360|305|ghbj)%>";

// execute
preg_match_all($regExp, $stringToTest, $matches);

// result
echo $matches[1]; // jaar
echo $matches[2]; // maand
echo $matches[3]; // dag
echo $matches[4]; // omschrijving

echo $matches[0]; // complete gevonden string

?>


Als de string `abseilen` varieerd, dan moet je dat stukje in de reguliere expressie even vervangen door iets als;

code:
1
[a-z]+


Wees creatief en zoek vooral...

Acties:
  • 0 Henk 'm!

Verwijderd

Erkens schreef op donderdag 09 december 2004 @ 13:30:
kan je niet "gewoon" exploden op | :?
^---- I'm with Erkens.

Die pipe scheidingstekens zijn er vast niet voor niks ingezet. Die zijn er namelijk ingezet zodat je makkelijk de in een string gehackte velden kan scheiden.

Met explode dus.
Pagina: 1