хм Код (Text): $ cat rpl2.php <?php $text = "Яркий чехол для iPhone 4/4S из силикона будет долго и надежно защищать Ваш смартфон от ударов, царапин, потертостей, пыли и остальных внешних факторов. Формы чехла в точности совпадают с габаритами iPhone 4/4s. Характеристики: материал - силикон, силикон, силикон, силикон, силикон, яркий, оригинальный чехол, удобно лежит в руке, есть все необходимые вырезы под боковые кнопки, гарнитуру, камеру, не скользит, плотно прилегает к телефону, легко одевается и снимается"; $tags = "iPhone,оригинальный,гарнитуру,телефону,снимается,силикон"; $tmp = explode( ',', $tags ); foreach( $tmp as $tag ) { $text = preg_replace("#\b({$tag})\b#iu", '<a href="http://site.ru/tags/$1/">$1</a>', $text, 1); } var_dump( $text ); ?> $ php rpl2.php string(1141) "Яркий чехол для <a href="http://site.ru/tags/iPhone/">iPhone</a> 4/4S из силикона будет долго и надежно защищать Ваш смартфон от ударов, царапин, потертостей, пыли и остальных внешних факторов. Формы чехла в точности совпадают с габаритами iPhone 4/4s. Характеристики: материал - <a href="http://site.ru/tags/силикон/">силикон</a>, силикон, силикон, силикон, силикон, яркий, <a href="http://site.ru/tags/оригинальный/">оригинальный</a> чехол, удобно лежит в руке, есть все необходимые вырезы под боковые кнопки, <a href="http://site.ru/tags/гарнитуру/">гарнитуру</a>, камеру, не скользит, плотно прилегает к <a href="http://site.ru/tags/телефону/">телефону</a>, легко одевается и <a href="http://site.ru/tags/снимается/">снимается</a>"
а у меня этот же код показывает вот так: Код (Text): string(871) "Яркий чехол для <a href="http://site.ru/tags/iPhone/">iPhone</a> 4/4S из силикона будет долго и надежно защищать Ваш смартфон от ударов, царапин, потертостей, пыли и остальных внешних факторов. Формы чехла в точности совпадают с габаритами iPhone 4/4s. Характеристики: материал - силикон, силикон, силикон, силикон, силикон, яркий, оригинальный чехол, удобно лежит в руке, есть все необходимые вырезы под боковые кнопки, гарнитуру, камеру, не скользит, плотно прилегает к телефону, легко одевается и снимается" убираю флаг U, все равно, что это может быть?
и так делать нельзя. все символы которые могут иметь неоднозначное значение пишутся соответствующим размером
на другом форуме писали что может помочь, но видимо это вообще не то, а еще прочитал что \b не работает с кириллицей, хотя у вас же работает, почему же тогда у меня не работает, в общем голова уже кругом пошла
я не телепат, настроек ваших не знаю. я много лет назад углубленно настроил сервера и все работает как мне нужно. как видите - какие-то из моих настроек заставляют работать код. или в другом дела. отладку проводите, ищите.
Вот, на сервере запускаю, обрабатывает только латиницу, слово iPhone, остальные нет Код (Text): $text = "Яркий чехол для iPhone 4/4S из силикона будет долго и надежно защищать Ваш смартфон от ударов, царапин, потертостей, пыли и остальных внешних факторов. Формы чехла в точности совпадают с габаритами iPhone 4/4s. Характеристики: материал - силикон, силикон, силикон, силикон, силикон, яркий, оригинальный чехол, удобно лежит в руке, есть все необходимые вырезы под боковые кнопки, гарнитуру, камеру, не скользит, плотно прилегает к телефону, легко одевается и снимается, ремонтируем"; $tags = "iPhone,оригинальный,гарнитуру,телефону,снимается,силикон,ремонт"; $tmp = explode( ',', $tags ); foreach( $tmp as $tag ) { $text = preg_replace("#\b({$tag})\b#iu", '<a href="http://site.ru/tags/$1/">$1</a>', $text, 1); } var_dump( $text );
Скорее всего проблема в том что в моей версии php метасимвол \b не работает с кириллицей, кто знает выход с положения?