Suche Text im String
Suche in einer eMail den Text zwischen zwei Markierungen - sieht so aus:
[name]Rainer Zufall[/name]
Hätte mit strpos zuerst nach "[name]" und dann nach "[/name]" gesucht, aber das erscheint mir sehr umständlich.
Wie kann man das am geschicktesten angehen?
Antworten
Wenn da was ersetzt werden soll, dann:
http://www.christian-seiler.de/projekte/php/bbcode/index.html
Ansonsten reguläre Ausdrücke:
http://de.php.net/manual/de/ref.pcre.php
2.
erstmal danke - sieht aber kompliziert aus, wenn man die anleitung ansieht:
http://www.christian-seiler.de/projekte/php/bbcode/doc/de/kapitel1.php
3.
Ich würde es so machen:
Code: In Zwischenablage kopieren (nur IE)
$match[1] wäre dann der Wert zwischen den [name][/name].
4.
[quote]
poncho posteteIch würde es so machen:
Code: In Zwischenablage kopieren (nur IE)
$match[1] wäre dann der Wert zwischen den [name][/name].[/quote] super danke
5.
Zitat:
super danke
Naja
Match damit mal:
Code: In Zwischenablage kopieren (nur IE)
6.
Dann eben so:
Code: In Zwischenablage kopieren (nur IE)
7.
yep so würde das passen ;)
Bloss noch per While alle Namen finden...
8.
Zitat:
Foggy postete
Bloss noch per While alle Namen finden...
Eher per while verarbeiten. Denn gefunden werden alle mit preg_match_all() :)
9.
auch wieder wahr ;)
10.
Hmmm, ich habe mehrere Strings die nacheinander durchsucht werden mit einer While Schleife, aber da kommt nicht ganz das richtige raus
Wo liegt denn hier mein Denkfehler:
Code: In Zwischenablage kopieren (nur IE)
11.
ok so funzt es:
Code: In Zwischenablage kopieren (nur IE)
12.
Da:
Code: In Zwischenablage kopieren (nur IE)
Es muss $name[1] sein. Index 0 ist der komplette gefundene String. Ab 1 aufwärts werden die einzelnen gesuchten Werte indiziert.
Auch nochmal nachzulesen in der Doku:
http://de.php.net/manual/de/function.preg-match.php
13.
Code: In Zwischenablage kopieren (nur IE)
14.
Hmm, ist aber nciht so optimal.
Wenn es ersetzt werden soll, würde ich eher preg_replace() nehmen. Dann muss man das auch nur einmal machen :)