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


Автор: tolik777 25.1.2008, 14:41
В БД есть HTML-текст.
Мне необходимо взять из БД текст и перед выводом в тэг A добавить доп. значения.
К примеру было:
<a href="http://yandex.ru" target="_blank" {....другие свйоства ссылки...} >Перейти</a>
А мне нужно чтобы получилось так:
<NOINDEX><a href="http://yandex.ru" target="_blank" {....другие свйоства ссылки...}  rel="nofollow">Перейти</a></NOINDEX>

Может у кого есть готовое решение?
Заранее спасибо.

Автор: flashaa 25.1.2008, 14:57
Вообще по идее это решается вот так:
Код

$str = str_ireplace('<a', '<a rel=nofollow ', $str);

Автор: bars80080 25.1.2008, 14:59
Код

$a = '<a href="http://yandex.ru" target="_blank" {....другие свйоства ссылки...} >Перейти</a>';
$b = explode('>', $a);
$b[0] .= '  rel="nofollow"';
$a = '<NOINDEX>'.implode('>', $b).'</NOINDEX>';


идея такая

дас, а Флаша попроще будет

Автор: tolik777 25.1.2008, 15:42
Да, но кроме ссылки может быть куча других HTML тэгов и ссылка то не одна может быть. Тогда приведенный выше код не сработает. А в коде от flashaa нет NOINDEX.

Автор: bars80080 25.1.2008, 15:53
по задаче и решение, ты не указал, что у тебя есть другой техт, но пример Флаши как раз подойдёт
Код

$str = str_ireplace('<a', '<NOINDEX><a rel="nofollow" ', $str);
$str = str_ireplace('</a>', '</a></NOINDEX>', $str);

Автор: flashaa 25.1.2008, 16:06
Цитата(bars80080 @  25.1.2008,  15:53 Найти цитируемый пост)
$str = str_ireplace('<a', '<NOINDEX><a rel="nofollow" ', $str);

Да, ещё нужен пробел в паттерне после <a , иначе будут испорчены теги, начинающиеся с а.

Автор: tolik777 25.1.2008, 16:20
О спасибо!

А если нужно добавить исключение?   smile  Ну к примеру обработать так все ссылки в тексте, кроме ссылок на mail.ru.

Автор: bars80080 25.1.2008, 17:27
ну тут уже придётся посоображать,

скажем explode('<a ', $str);
потом искать в каждом куске атрибут href="mail.ru" и выполнять соответствующие действия,

но такую обработку извольте написать сами, ибо мне уже лень

Автор: tolik777 25.1.2008, 18:17
Ну ладно, всем большое спасибо!

Готов подкинуть пару WMZ тому кто доделает немного скриптик (чтобы можно было задвать исключения) ИМХО тут можно регулярными выражениями сделать. А то дочка родилась во вторник smile  , сейчас не до думания. А сделать надо........

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