what to do if I want to replace only the first occurrence of a word in a string. eg: I want to change the first occurrence of heelo in a string with kiran.
input string == **"hello worl开发者_如何转开发d i am a noob hello to all"**
output string == **"kiran world i am a noob hello to all"**
the str_replace is not working.
You could use preg_replace
. The 4th arugment of this functions allows you to set how many times a replacement should occur.
$output = preg_replace( "/$find/", $replace, $input, 1 );
If you don't want regular expression meta-characters to be interpretted in the search string, use:
$output = preg_replace( "/\\Q$find\\E/", $replace, $input, 1 );
You can use stripos()
and substr_replace()
:
$str = "hello world i am a noob hello to all";
$needle = 'hello';
echo substr_replace($str, 'kiran', stripos($needle, $str), strlen($needle));
gives
kiran world i am a noob hello to all
stripos()
gives the index of the first occurrence of a substring (case insensitive) and substr_replace()
replace the substring at index i
and length n
by the given argument.
精彩评论