Это работает, хотя и немного неэффективно:
$a = "Yo! **Hello** this is the first word of Hello in this sentence";
$a = preg_replace('/Hello/', 'Welcome', $a, 1);
Другой популярный ответ:
$b = str_replace('Hello', 'Welcome', $a, 1);
не работает.Четвертый аргумент str_replace
должен быть переменной, которая передается по ссылке, и str_replace
установит для нее число сделанных замен .
Лучшим решением было бы извлечьдве подстроки из входной строки:
- Подстрока до первого вхождения
Hello
, назовите ее $s1
- Подстрока после первого вхождения
Hello
, назовите его $s2
Можно использовать strpos
, чтобы получить позицию.
Результат равен $s1.'Welcome'.$s2