Ersetzen nur im ersten Fall
steffi
- php
Hi,
wie lege ich fest, dass nur das erste vorkommen eines strings in nem text ersetzt wird? die anderen vorkommen sollen unverändert bleiben.
danke
echo $begrüßung;
wie lege ich fest, dass nur das erste vorkommen eines strings in nem text ersetzt wird? die anderen vorkommen sollen unverändert bleiben.
Das kann man zu Fuß mit einer Handvoll String-Funktionen machen oder mit preg_replace() und dessen Parameter limit.
echo "$verabschiedung $name";
Hi!
Hi,
wie lege ich fest, dass nur das erste vorkommen eines strings in nem text ersetzt wird? die anderen vorkommen sollen unverändert bleiben.
Überlege dir doch mal den Algorithmus hierfür; dieser ist nicht besonders schwer:
Als erstes muss ich mal das erste Auftreten des zu ersetzenden Strings finden, dies geschieht mittels strpos(). Als nächstes speichere ich den Teilstring in eine Variable ab, der vom Anfang des Ausgangsstrings bis zum ersten Vorkommen des gesuchten Strings geht. Das gleiche geschieht dann auch mit dem restlichen String, der vom ersten Vorkommen + Länge des gesuchten Strings bis zum Ende des ursprünglichen Strings geht. Zum Schluss verknüpfe ich einfach den ersten Teil, die neue Ersetzung und den zweiten Teil des alten Strings und fertigt ist die Funktion ;-)
Setzt man das ganze dann noch in PHP um, so kann dies so aussehen:
function str_replace_once($search, $replace, $subject) {
$pos = strpos($subject, $search);
if($pos === FALSE) return FALSE;
else {
$part1 = substr($subject, 0, $pos);
$part2 = substr($subject, $pos + strlen($search));
return $part1 . $replace . $part2;
}
}
Grüße,
Fabian St.
Hallo,
wie lege ich fest, dass nur das erste vorkommen eines strings in nem text ersetzt wird? die anderen vorkommen sollen unverändert bleiben.
Siehe Archiv:
http://forum.de.selfhtml.org/archiv/2005/12/t119802/#m769156
LG
Chris