preg_match_all wer kann helfen
Neuling
- php
Hallo,
ich habe einen Text wie folgt:
text text <br>
text text text text text <br>
text text text <br>
text <br>
-----------------------------------<br>
text text text text <br>
text text <br>
text <br>
text text text text text <br>
text <br>
-----------------------------------<br>
text text <br>
text text text text text <br>
text text text <br>
text <br>
So jetzt möchte ich in die variable $text den text zwischen den -------
rausfiltern. Wie geht das, wie kann ich dazu die Funktion preg_match_all nutzen?
Bitte postet mal einen php script dazu.
Danke.
Hallo Neuling,
text text <br>
text text text text text <br>
text text text <br>
text <br>
-----------------------------------<br>
text text text text <br>
text text <br>
text <br>
text text text text text <br>
text <br>
-----------------------------------<br>
text text <br>
text text text text text <br>
text text text <br>
text <br>
unter der Voraussetzung, dass der Trenner immer aus der gleichen Zeichenkette besteht, würde sich hier eher $text=[link:http://de2.php.net/manual/en/function.explode.php@title=explode]($trenner,$text);
anbieten. An die einzelnen Textsegmente kommst Du dann über den Array-Schlüssel (vgl. Type Array).
Fragen? Frag!
Gruß aus Berlin!
eddi
Wie geht das, wie kann ich dazu die Funktion preg_match_all nutzen?
Ein typischer Fall von "I know, I’ll use regular expressions.". Das ist natürlich nicht immer schlau, einen entsprechend einfachen Ansatz hat dir Edgar schon geliefert.
Natürlich ist es auch mit einem regulären Ausdruck möglich (wenn auch unnötig kompliziert) - preg_match_all willst du dann vermutlich aber nicht nutzen, wohl eher preg_match, da offenbar nur an "einem Treffer" interessiert bist - oder?
(Hallo|Hi(ho)|Tag) Neuling,
text text <br>
text text text text text <br>
text text text <br>
text <br>
-----------------------------------<br>
text text text text <br>
text text <br>
text <br>
text text text text text <br>
text <br>
-----------------------------------<br>
text text <br>
text text text text text <br>
text text text <br>
text <br>So jetzt möchte ich in die variable $text den text zwischen den -------
rausfiltern. Wie geht das, ...
Hängt davon ab, was du unter "rausfiltern" verstehst.
Entfernen geht so:
$filtered = preg_replace('/(-{35})(.+)(-{35})/s', '$1$3', $input);
Extrahieren (nur das Teilstück behalten) geht so:
$filtered = preg_match('/(-{35})(.+)(-{35})/s', $input, $matches) ? $matches[2] : '';
Zeilenumbrüche und Whitespace-Zeichen hab ich ignoriert, schließlich sollst du die Möglichkeit
haben, auch noch selbst damit zu experimentieren. ;-)
... wie kann ich dazu die Funktion preg_match_all nutzen?
Gar nicht. Vielleicht solltest du dich erstmal darüber informieren,
welche preg_...()-Funktion man wie verwenden kann. Guckst du:
http://php.net/manual/en/book.pcre.php
... und wenn sie wieder erreichbar ist, auch die deutsche Variante:
http://php.net/manual/de/book.pcre.php
MffG
EisFuX