Подскажите регулярное выражение (PHP) для получения внешних ссылок со страницы

12
alexandr_nv
На сайте с 23.04.2009
Offline
39
#11
jasmin-dance:
а внутренние ссылки с абсолютными адресами (через http:// и так далее) какими будут считаться?

Они будут считаться как внутренние, если в приведенной выше функции

getoutlinks($content, $domain)

указать параметр $domain = домен вашего сайта

F
На сайте с 12.05.2010
Offline
7
#12
bigton:

<?
/**
* Получение внешних ссылок со страницы
*
* @param html
* @param домен (без www.)
* @return массив внешних ссылок
*
*/
function getoutlinks($content, $domain)
{
$content = preg_replace("/[\n\r\t]/", '', $content); // Заменяем символы перевода строки и табуляции на пробел
$content = preg_replace("/[ ]{2,}/", ' ', $content); // Заменяем более 2х пробелов одним

preg_match_all("/<a[^<>]*href=['|\"](.*)['|\"][^<>]*>(.*)<\/a>/iU", $content, $links); // Собираем ссылки

if (sizeof($links[1]) > 0) // Если ссылки найдены
{
$out = array(); // Массив для внешних ссылок

foreach ($links[1] as $v)
{
if (preg_match("/http:\/\/(www\.){0,1}".$domain."/i", $v)) // Пропускаем внутренние ссылки
{
continue;
}

if (preg_match("/http:\/\/(www\.){0,1}(.*)/i", $v)) // Внешняя ссылка
{
$out[] = $v;
}
}

return $out;
}

return array();
}

БОЛЬШОЕ СПАСИБО!

fxwriter добавил 02.06.2010 в 15:45

хотя работает не для всех сайтов. Вот например buyz.50megs.com/brokerlinks.html попробуйте

Копирайтинг и рерайтинг на разные темы (в частности ФОРЕКС) АНГЛ+РУС
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий