Homepage selbermachen 7.852 Themen, 35.619 Beiträge

PHP: str_replace nur auf das erste Vorkommen eines Strings anwen

B.punkt / 5 Antworten / Baumansicht Nickles

Hallo,


ich hab hier einen String, in dem steht öfter "bla". Nun will ich das erste "bla" in "blub1", das 2te in "blub2" usw. umwandeln. Wenn es eine Funktion gäbe, die immer nur das erste Vorkommen des Strings ersetzt, könnte ich das einfach mit einer while-Schleife machen. Aber da hab ich nix gefunden. Weiß jmd. von euch vielleicht was ich machen kann?


CU b.punkt


P.S.: Danke im Voraus :))

bei Antwort benachrichtigen
Heinz_Malcher B.punkt „PHP: str_replace nur auf das erste Vorkommen eines Strings anwen“
Optionen

sorry ich versteh die frage nicht so ganz.

also mit ereg_replace oder str_replace kannst du entweder die strings ersetzen oder nicht, aber so ohne weiteres einen ersetzen oder einen nicht ersetzen geht meines wissens nicht

es sei denn, vielleicht, wenn du die zu ersetzenden zeichen mit substr() vorher definierst

bei Antwort benachrichtigen
B.punkt Nachtrag zu: „PHP: str_replace nur auf das erste Vorkommen eines Strings anwen“
Optionen

Dann nochmal die Frage ;) :
Ich hab nen Text, zB "Hier ist ein Link, hier ein andrer Link, hier noch ein Link"
Daraus soll "Hier ist ein Link1, hier ein andrer Link2, hier noch ein Link3" werden. Also
1. Link => Link1
2. Link => Link2
3. Link => Link3

Hoffe es ist jetzt verständlich :)

CU b.punkt

bei Antwort benachrichtigen
Heinz_Malcher B.punkt „Dann nochmal die Frage : Ich hab nen Text, zB Hier ist ein Link, hier ein andrer...“
Optionen

$a=0;
while($a str_replace......
$a++;
}


Das ginge schon mit einer while schleife, aber du müsstest schon die linkanzahl haben oder das ganze mit einer foreach schleife lösen

bei Antwort benachrichtigen
B.punkt Nachtrag zu: „PHP: str_replace nur auf das erste Vorkommen eines Strings anwen“
Optionen

Also, ich hab das ganze so gelöst:
$i = 0;
while ( $i {
$string = preg_replace('/linkx/','link'.$i,$string,1);
$string = preg_replace('/linkx/','link'.$i,$string,1);
$i++;
};

Geht wunderbar. Danke :)

bei Antwort benachrichtigen
Heinz_Malcher B.punkt „Also, ich hab das ganze so gelöst: i 0 while i string preg_replace /linkx/ ,...“
Optionen

genau so hätte ich mir das auch gedacht. wenns klappt == super

bei Antwort benachrichtigen