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

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

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

 

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

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

тема: Выбрать ссылки на все домены кроме....
 
 автор: tAleks   (24.01.2012 в 16:13)   письмо автору
 
 

Нужно обработать все ссылки в коментариях пользователей.
Если пользователь дает ссылку на др. станицу нашего сайта, делаем из нее активную ссылку, если дает внешнюю ссылку, тоже делаем из нее тоже активную, но с параметром rel="nowollow".

Т.е. нужно составить рег. выражение, которое бы выбирало все ссылки, кроме ссылок на наш сайт.

  Ответить  
 
 автор: cheops   (24.01.2012 в 20:40)   письмо автору
 
   для: tAleks   (24.01.2012 в 16:13)
 

Ссылка как дается при помощи bbCode или HTML? В ней всегда есть http:// или его может не быть?

  Ответить  
 
 автор: tAleks   (09.02.2012 в 16:11)   письмо автору
 
   для: cheops   (24.01.2012 в 20:40)
 

Ссылка просто пишется "руками".

Может быть такая:
http://site.ru/index.php

или такая:
http://www.site.ru/index.php

или такая:
www.site.ru/index.php

  Ответить  
 
 автор: Igorek   (09.02.2012 в 12:48)   письмо автору
 
   для: tAleks   (24.01.2012 в 16:13)
 

делал для phpbb форума, после обработки bb-кодов:

function callback_func($matches)
{
    if ( ! strpos($matches[1], 'sitename.ru')) 
    {
    $message = str_replace('<a','<noindex><a rel=\'nofollow\'', $matches[0]);
    return str_replace('/a>','/a></noindex>', $message);
    }
    else
    {
    return $matches[0];
    }
}
$message = preg_replace_callback("|<a([^>]+)>.*?</a>|",callback_func, $message);


не очень красиво получилось. можно без callback-функции сделать, правда же? ))

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

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