Teilstring zwischen zwei Markern austauschen ?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
austauschen
bestimmten unbekannten teil
code
dank
ende
frage
header
idee
info
jemand
machen
markierung
problem
sinn
string
teil
text
type
unterschied
verwenden
-
Hallo erstmal,
ich suche eine Lösung, wie ich mit PHP aus einem String
einen bestimmten (unbekannten) Teil-String austauschen kann,
der zwischen zwei Markierungen (links und rechts davon) steht.
Das Problem ist, dass mind. einer dieser "Marker" im String mehrfach vorkommt
also nur der linke Marker ist unique, aber der rechte wiederholt sich.
BSP:
$old_string = 'abcd efghij START1 blablabla ENDE klmno pqrst START2 lalalal ENDE uvwxyz';
wie bekomme ich jetzt den Teil blablabla zu uiuiuiuiui, ohne dass das Script blablabla kennt
dann wäre es ja einfach mit str_replace() .... aber so ?!
jemand ne Idee? Danke!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
<?php header('Content-Type: text/plain'); $pattern = '/START1(.*)ENDE/isU'; $data = 'abcd efghij START1 blablabla ENDE klmno pqrst START2 lalalal ENDE uvwxyz'; $text = preg_replace($pattern, 'START1 uiuiuiui ENDE', $data); echo($text); ?>
-
Danke das funktioniert.
habe mir noch ein bischen Infos zum Thema Pattern und "Reguläre Ausdrücke" zusammen-gegoogelt
und noch die Frage dazu;
was ist der Unterschied von :
$pattern = '/START1(.*)ENDE/isU';
und
$pattern = '/START1(.*?)ENDE/is';
beides funktioniert, aber was ist der Unterchied, welches sollte man (wann) verwenden?
a) ob ich (.*?) verwende ohne den Modifier U (= nicht gierig)
b) oder ob (.*) mit dem Modifier U verwende ?
-
Der Unterschied:
findet/START1(.*)ENDE/is
Gierig im Sinne von "möglichst langer Treffer"START1 blablabla ENDE klmno pqrst START2 lalalal ENDE
hingegen findet/START1(.*)ENDE/isU
Das U bwirkt das der kürzeste String gefunden wird.START1 blablabla ENDE
-
ok, soweit verstanden,
und das ? in (.*?) macht genau das gleiche wie der Modifier U ?
oder ist das noch was anderes ?!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage