Ich habe eine Zeichenfolge mit folgender Struktur: 'aba aaa cba sbd dga gad aaa cbz'
. Die Zeichenfolge kann jedes Mal etwas anders sein, da sie von einer externen Quelle stammt.
Ich möchte nur das erste Vorkommen von 'aaa'
ersetzen, nicht aber die anderen. Ist es möglich?
Der optionale vierte Parameter von preg_replace ist limit
:
preg_replace($search, $replace, $subject, 1);
Sie können dazu das limit
-Argument von preg_replace
verwenden und es auf 1
setzen, damit höchstens eine Ersetzung geschieht:
$new = preg_replace('/aaa/','replacement',$input,1);
zum Beispiel ist out $ content:
START
FIRST AAA
SECOND AAA
1) wenn Sie verwenden:
$content = preg_replace('/START(.*)AAA/', 'REPLACED_STRING', $content);
es ändert sich alles vom START zum letzten AAA und Ihr Ergebnis wird sein:
REPLACED_STRING
2) wenn Sie verwenden:
$content = preg_replace('/START(.*?)AAA/', 'REPLACED_STRING', $content);
Ihr Ergebnis wird wie folgt aussehen:
REPLACED_STRING
SECOND AAA