манипулирование строками в PHP: заменить только первое вхождение слова в строку - PullRequest
0 голосов
/ 04 июля 2010

что делать, если я хочу заменить только первое вхождение слова в строку. Например: я хочу изменить первое вхождение heelo в строке с помощью kiran.

input string == **"hello world i am a noob hello to all"**
output string == **"kiran world i am a noob hello to all"**

str_replace не работает.

Ответы [ 2 ]

3 голосов
/ 04 июля 2010

Вы можете использовать preg_replace.Четвертый фрагмент этой функции позволяет вам указать, сколько раз должна произойти замена.

$output = preg_replace( "/$find/", $replace, $input, 1 );

Если вы не хотите, чтобы метасимволы регулярного выражения интерпретировались в строке поиска, используйте:

$output = preg_replace( "/\\Q$find\\E/", $replace, $input, 1 );
0 голосов
/ 04 июля 2010

Вы можете использовать stripos() и substr_replace():

$str = "hello world i am a noob hello to all";
$needle = 'hello';
echo substr_replace($str, 'kiran', stripos($needle, $str), strlen($needle));

1010 * дает *

kiran world i am a noob hello to all

stripos() дает индекс первого вхождения подстроки (без учета регистра) и substr_replace() заменяет подстроку с индексом i и длиной n на данный аргумент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...