[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: preg_replace и не искать уже в замененном
Barh
Здравствуйте, форумчане!

Есть примерно такой код, который выделяет искомые значения в строке:
$pattern = ('/тор/', '/говорит/','/strong/');
$replacement = "<strong>$0</strong>";
$final_result = preg_replace($pattern, $replacement, $string);


Так вот в переменной $final_results ещё и выделится тот текст на который я заменял ранее.

Как-то можно искать только в первоначальной строке?

Или это возможно только если искать позицию вхождений и потом выделять по позициям вручную?
Placido
Можно. Для этого паттерн должен быть в виде строки с альтернативами, а не в виде массива.
$pattern = 'тор|говорит|strong';
$replacement = "<strong>$0</strong>";
echo preg_replace('/' . $pattern . '/', $replacement, $string);


Если массив, то нужно сделать из него строку - например, с помощью implode, предварительно убрав разделители.
Barh
Цитата (Placido @ 4.10.2013 - 11:48)
Можно. Для этого паттерн должен быть в виде строки с альтернативами, а не в виде массива.
$pattern = 'тор|говорит|strong';
$replacement = "<strong><!--QUOTE BOX--></strong>";
echo preg_replace('/' . $pattern . '/', $replacement, $string);


Если массив, то нужно сделать из него строку - например, с помощью implode, предварительно убрав разделители.

Спасибо, очень помогли, и как я сам не догадался)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.