PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : regexp



elrond
26-06-2008, 12:43
Hallo ich stelle mich rigendwie ein wenig blöd an... :o

ich sitzte jetzt schon einige Zeitl an einem regexp , mit dem ich aus dem folgenden text



<label for="o2pname">Name</label>
@FIELD_name@<br />
<label for="o2pvorname">Vorname</label>
@FIELD_vorname@
<label for="o2ort">PLZ / ORT</label>
@FIELD_plz@ @FIELD_ort@


alle platzhalter die dem Muster @FIELD_*@ folgen auf ein array lesen will.



@preg_match_all("/\@FIELD_.*\@/",$template,$out);


ich habs jetzt schon in tausen varianten versucht...vllt. habt ihr ja einen plan

gruß frank

undefined
26-06-2008, 23:06
Du suchst in nach "Irgendein" Zeichen innerhalb der AT du solltest nach nicht Leerzeichen suchen ;)


<?php

$template = <<<EOT
<label for="o2pname">Name</label>
@FIELD_name@<br />
<label for="o2pvorname">Vorname</label>
@FIELD_vorname@
<label for="o2ort">PLZ / ORT</label>
@FIELD_plz@ @FIELD_ort@
EOT;

$out = array();
preg_match_all("/@FIELD_(\S+)@/", $template, $out, PREG_SET_ORDER);

var_dump("<pre>", $out,"</pre>");

?>

msi
27-06-2008, 10:11
und besser nicht gierige */+ Operatoren benutzen!
also

\S+?

statt

\S+

elrond
30-06-2008, 09:20
ich sag dann mal das selbe wie die spanier gestern abend "muchas gracias!!" :rolleyes:

funxt gut