An welcher Stelle trifft das RegEx?

Surma

Erfahrenes Mitglied
Hossa,

simpel:

Ich durchsuche gerade einen Text mit preg_replace_all und schau mir das matches-array an.

Wie kann ich rausfinden, an welcher Stelle / an welchen Stellen ein Regex trifft,
so dass ich diese als Substring rausziehen kann :?
 
Als dritten Parameter erlaubt die preg_match_all()-Funktion den Einsatz der PREG_OFFSET_CAPTURE-Konstante. Damit wird mit jeder gefundenen Übereinstimmung der dazugehörige Versatz in der Zeichenkette zurückgegeben.
 
Ja, das dachte ich erst auch, aber irgendwie passiert gar nichts mit dem Ergebnis :/
Ich seh' nirgends ne Versatzangabe. Hab aber ne aktuelle PHP-Version.

Ne Idee?

//edit:
Hab' gerade herausgefunden, dass bei mir das Flag PREG_OFFSET_CAPTURE gar nicht defniert ist. Auch wenn ic hden WErt per hand eingab, meckert preg_match_all.
Obwohl ich PHP 4.1.2 hab :/
Mal updaten...
 
Zuletzt bearbeitet:
In älteren PHP-Versionen musst du PREG_OFFSET_CAPTURE in Kombination mit einer anderen Flag verwenden:
Code:
preg_match_all($pattern, $string, $out, PREG_OFFSET_CAPTURE | PREG_PATTERN_ORDER);
(das hättest du übrigens auch selbst herausgefunden, wenn du die Seite bei php.net bis zum Ende gelesen hättest;))

Ansonsten:Wenn man keinen eigenen Server hat, muss man sich mit der vorhandenen PHP-Version abfinden.
Da macht es dann wenig Sinn, zuhaus mit V5 zu testen, wenn auf dem echten Server nur V4 ist
....vielmehr sollte man zusehen, dass die Konfiguration auf beiden Servern soweit wie möglich übereinstimmt.
 
Aehm ja...
also
1.) Die Funktion soll in dieser Art und weise ab PHP-Version 3.0.9 (oder so, auf jeden Fall 3 ;-) ) vorhanden sein.
2.) Die Flagkombination hab ich auch benutzt, funktioniert leider nicht weiter (Das hatte ich rausgefunden, nur es half nix :/ )

Deswegen bin ich auch so perplex :/

Ich hab meinen eigenen Server, nur der spackt z.Z ziemlich rum und hat auch keine neuere PHP-Version, aber dann werd ich wohl erstmal ein bisschen warten muessen.

Danke erstmal
 
Zurück