Tutorials

Einige nützliche Hilfen und Code-Schnipsel, die ich immer wieder benötige und deshalb hier für alle sammle.

Zurück zur Übersicht

PHP: Mit str_replace nur ersten Treffer/Match ersetzen

#Tutorials#PHP

Im Gegensatz zu Javascript ersetzt str_replace nicht nur den ersten Treffer, sondern direkt alle Vorkommnisse in einem String. Um nur den ersten Treffer zu ersetzen hilft die folgende Funktion. Die Funktion ist deutlich schneller als eine Regexp, allerdings dadurch auch weniger schön zu lesen.

// How to use:
str_replace_first('Foo','Bar','Foo Foo Foo'); // Ergibt Bar Foo Foo

function str_replace_first($search,$replace,$subject){
    $pos = strpos($subject, $search);
    if ($pos !== false) {
        $return substr_replace($subject, $replace, $pos, strlen($search));
    } else {
        return $subject;
    }
}

Kommentare

  • Softwareentwicklung in Suhl
    es hat sich ein kleiner Fehler eingeschlichen:
    ersetze die Zeile:
    $return substr_replace($subject, $replace, $pos, strlen($search));
    durch
    return substr_replace($subject, $replace, $pos, strlen($search));
    (also ohne das Dollarzeichen)
    LG Kies-Media GmbH
    Antworten
  • M67T
    Hallo Andre, danke für die nützliche Funktion! Aber wie die Entwickler es auch tun, ist es falsch. Bei Javascript nur das erste, aber was ist wenn man alle will und bei php andersrum.

    Gz
    Antworten

Hinterlasse einen Kommentar

Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Kommentar wird gespeichert
Danke für deinen Kommentar! Sobald er freigegeben wurde erscheint er hier.