L learn Medlem sedan jan. 2005 1 130 inlägg Frågan 28 aug. 2006 12:26 #1 Jag har en sträng som jag vill byta ut en del av. Problemet är att delen kan förekomma flera gånger i strängen och det är bara den första förekomsten som skall bytas ut.
DVS:
abchejdefhej
Ska bli:
abcdefhej
Där "hej" är den del som byts ut...
Hur gör jag så att endast den första förekomsten byts ut?
fiddler Medlem sedan juli 2002 3 617 inlägg Kanske finns något smartare sätt... Leta rätt på positionen med strpos och byt ut med substr_replace.
L learn Medlem sedan jan. 2005 1 130 inlägg
fiddler skrev:
Kanske finns något smartare sätt... Leta rätt på positionen med strpos och byt ut med substr_replace.
Är inte det lite svårt när jag inte vet hur lång strängen och den eftersökta delen är? Visa gärna hur du tänker...
P plup Medlem sedan sep. 2005 93 inlägg tänkte som fiddler.
<?php
$search = 'hej';
$string = 'abchejdefhej';
echo substr_replace ($string, '', stripos ($string, $search), strlen ($search));
// "abcdefhej"
?>
men även jag får lite av fulhack-känslan. men jaja, it does the trick!
preg_replaces sista parameter berättar hur många som ska ändras och eftersom de är den första du ska ta bort så sätt en etta där bara.
preg_replace("/hej/", "XXX", $string, 1);