|
|
автор: _гость_ (23.02.2008 в 07:07) |
|
|
для: Zilog
(23.02.2008 в 01:47)
| | просще наверное так
<?php
$txt = <<<TXT
текст<br />
<a href=""><i>слово</i></a>
<a href="">ещё</a> слово
много слов
TXT;
echo htmlspecialchars(preg_replace('#(\bслово\b)(?!((?!<a).)*</a)#s' ,
'<a href="слова">$1</a>' , $txt));
?>
|
| |
|
|
|
|
|
|
|
для: ddhvvn
(22.02.2008 в 23:41)
| | >не включать пробел в извлекаемые данные (\s вынести за скобки)
вот как я делаю:
$text = preg_replace("/$key\s/ i","<a href=$url>$0</a>",$text);
|
если $key заключить в скобки, то все равно ничего не изменится. | |
|
|
|
|
|
|
|
для: Zilog
(22.02.2008 в 19:44)
| | не включать пробел в извлекаемые данные (\s вынести за скобки) | |
|
|
|
|
|
|
|
для: Zilog
(22.02.2008 в 19:14)
| | и ещё вопрос - как искасть СЛОВО, а не ехо вхождение в другое СЛОВОсочетание?
Добавлено: разобрался, надо подставить \s. Только в этом случае, ссылка получается с пробелом - как этого избежать? | |
|
|
|
|
|
|
|
для: Dimon_K
(22.02.2008 в 18:37)
| | >В переменную $0 попадает вся совпавшая строка ее мы и подстовляем
Дим, спасибо большое, сейчас буду изучать.
Но уже есть два вопроса
1. как данные оказались в этой переменной?
2. что будет, если $text="Привет от <a href=mailto:>somebody@mail.ru!</a>"? Ведь в тексе может оказаться, что искомое слово - ссылка!
Требования к словам простые: найли слова, имя список на руках, и сделать их ссылками, пропуская то, что уже является ссылками.
проверил предоставленный пример - неработает (просто скопипастил, и вывел на экран $htnl) | |
|
|
|
|
|
|
|
для: Zilog
(22.02.2008 в 17:25)
| | Я не знаю какие требования к словам которые вы будете искать, но допустим такой вариант:
$text="Привет от somebody@mail.ru!";
$htnl=preg_replace('/ (S+) @ ([a-z0-9.]+) /is', '<a href="mailto:$0">$0</a>', $text);
|
В переменную $0 попадает вся совпавшая строка ее мы и подстовляем | |
|
|
|
|
|
|
| 1. Ищу слово в тексте. Нужно найти то, которое соответствует заданному, и не является ссылкой.
2. Хочу заменить найденное слово на ссылку - как мне это сделать в рамках одного оператора (preg_replace) ?
Товарищи спецы, на вас вся надежда - всю голову сломал рег. выражениями...
упс. Прощу прощения, не в тот форум зпостил. Ув. модераторы, переместите, пожалуйста, тему в "Рег. выражения" | |
|
|
|
|