Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Строгая замена слова целиком.
 
 автор: Diablo_   (11.03.2012 в 00:11)   письмо автору
 
 

Всем привет.
Весь вечер мучаюсь! Надо сделать замену слова, на ссылку. Но целиком.
хотел сделать через str_replace, но по ходу он не позволяет такого. Пришлось делать через preg.
Вот что получилось:

//$search[] - Массив искомых слов
//$replace[] - массив с заменами.
$search[] = '#([^A-z])('.$array['title'].')([^A-z])#isU';
$replace[] = '$1<a href="/'.$array['id'].'.html">'.$array['title'].'</a>$3';
// и потом
preg_replace($search, $replace, $content);

Проблема была с тем что он заменял слова даже на половине, либо не заменял. Сейчас он, вроде бы, работает верно. Но вот не понимаю как разрешить все символы до и после? Или нужно чётко их перечислять?

  Ответить  
 
 автор: cheops   (11.03.2012 в 00:14)   письмо автору
 
   для: Diablo_   (11.03.2012 в 00:11)
 

Есть полезная штука, граница слова \b, попробуйте её
$search[] = '#\b('.$array['title'].')\b#isU';

  Ответить  
 
 автор: Diablo_   (11.03.2012 в 00:18)   письмо автору
 
   для: cheops   (11.03.2012 в 00:14)
 

Супер! Спасибо! А у меня, что-то не получалось! То последние символы удалял, то и перед и после....

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования