Lestat
Новичок
Подсветка искомого значения в тексте с учетом тегов
Помогите с рег. выражением.
Необходимо выделить найденное значение в тексте.
нужно пройтись по тексту, и найденную часть выделять в <span style="background: #ffff66;"></span>
при этом в тексте могут быть ссылки, и найденное значение в них нужно обходить..
в примере ниже, если использовать обычный str_replace, то в ссылке в href="" искомое значение 'goog' будет тоже заменено.
каким рег. выражением можно обходить теги?
правильным выводом должно быть:
Помогите с рег. выражением.
Необходимо выделить найденное значение в тексте.
нужно пройтись по тексту, и найденную часть выделять в <span style="background: #ffff66;"></span>
при этом в тексте могут быть ссылки, и найденное значение в них нужно обходить..
в примере ниже, если использовать обычный str_replace, то в ссылке в href="" искомое значение 'goog' будет тоже заменено.
каким рег. выражением можно обходить теги?
PHP:
<?php
//вот исходный текст
$text = 'After closing and opening the IE 6 - google the FreeAD and the Google AD appears at
<a href="http://www.google.com/accounts/ServiceLogin?service=writely&passive=true" target="_blank">http://www.google.com...rl</a>';
//запрос
$search = 'goog';
$test = preg_replace('#???#','<span style="background: #ffff66;">' . $search . '</span>',$text);
echo "<pre>";
var_dump($text);
var_dump($test);
echo "</pre>";
?>
PHP:
$good = 'After closing and opening the IE 6 - <span style="background: #ffff66;">goog</span>le the FreeAD and the <span style="background: #ffff66;">Goog</span>le AD appears at
<a href="http://www.google.com/accounts/ServiceLogin?service=writely&passive=true" target="_blank">http://www.<span style="background: #ffff66;">goog</span>le.com...rl</a>';