Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > регулярка вырезает крайние символы


Автор: Darksquall 31.12.2008, 11:58
Уважаемые форумчане, подскажите по коду плиз,

Вариант 1 (планировалось что выделится только слово где рядом есть пробел, но в результате он вырезает один символ по краям в replace, почему так и как поправить?)
Код

$word='Сайт';
$text='сайт или Сайт илисайт а также сайт наш <a href="">Сайт</a> строго Сайт.';
$pattern='/[\s|&nbsp;]'.$word.'[\s|&nbsp;]/';

$word_zamena='<a href="/1.php?s=2">'.$word.'</a>';
echo preg_replace($pattern, $word_zamena, $text);


Вариант 2 как обойти вставку внутри <a></a> и при этом выбрать слово, так [^<>] почемуто не работает.
Код

$word='Сайт';
$text='сайт или Сайт илисайт а также сайт наш <a href=""> Сайт </a> строго Сайт.';
$pattern='/[\s]'.$word.'[\s]/';

$word_zamena='<a href="/1.php?s=2">'.$word.'</a>';
echo preg_replace($pattern, $word_zamena, $text);


Заранее спасибо.

Автор: Wolf1994 31.12.2008, 12:25
По второму варианту: http://ru2.php.net/manual/ru/regexp.reference.php , читайте "Утверждения".

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)