|
|
|
| Вообщем есть скажем у меня строка
$строка = 'Den , hello , (super), amazing , super-man';
И есть $массив = array('hello', 'super');
Мне надо заменить те слова из строки, которые есть в массиве, на префикс.слово.
То есть должно получиться $строка = 'Den , префикс.hello , (префикс.super), amazing , super-man';
Мы знаем, что слова могут разделяться только '.' ,' ' , ')' , '('
$строка = preg_replace(Что тут должно быть?, $массив, $строка);
P.S Возможна обработка в цикле | |
|
|
|
|
|
|
|
для: capitan-america
(01.11.2011 в 11:54)
| | Можно начать отталкиваться от следующего скрипта
<?php
$text = 'Den , hello , (super), amazing , super-man';
$array = array('hello', 'super');
for($i = 0; $i < count($array); $i++)
{
$pattern = "|([.,)(\s])(".preg_quote($array[$i]).")([.,)(\s])|is";
$text = preg_replace($pattern, "\\1префикс.\\2\\3", $text);
}
echo $text;
?>
|
PS Он не является универсальным, так как не корректно обрабатывает слова, расположенные в начале и конце строки - их придется обработать отдельно. | |
|
|
|
|
|
|
|
для: cheops
(01.11.2011 в 12:55)
| | Ага, вроде работает. А насчет крайних слов я приделал по пробелу слева и справа, а затем тримом их убрал.
Спасибо) | |
|
|
|