Анализировать внешнюю веб-страницу и извлекать все URL-адреса и текст ссылки из содержимого - PullRequest
0 голосов
/ 15 ноября 2011

Я хочу проанализировать внешние веб-страницы и извлечь все URL-адреса и текст ссылки из содержимого с помощью PHP.

Например,

$content="<a href="http://google.com" target="_blank"> google</a> is very good search engine <a href="http://gmail.com" target="_blank">Gmail </a> is provided by google.

Выход:

http//google.com      google 
http//gmail.com     Gmail 

Предложения очень ценятся!

Ответы [ 2 ]

2 голосов
/ 15 ноября 2011

Если вы хотите извлечь URL и текст с помощью регулярных выражений, то должно работать следующее:

<\s*a\s*href\s*=\"(?<url>.*)\">(?<text>.*)</a>

Однако, синтаксический анализ HTML с RegEx не очень хорошая идея, вы можете использовать DOM класс вместо этого.

Редактировать

$content = "< a href="http://google.com" target="_blank"> google</a> is very good search engine < a href="http://gmail.com" target="_blank">Gmail </a> is provided by google .";

$html = new DOMDocument();
$html->loadHTML($content);

$anchors = $html->getElementsByTagName('a');
foreach ($anchors as $anchor) {
       echo $anchor->getAttribute('href') . "\t" . $anchor->nodeValue;
}
0 голосов
/ 15 ноября 2011

Вы можете использовать этот шаблон REGEX href="([a-zA-Z0-9://. ]+)"

Пример использования

$pattern = 'href="([a-zA-Z0-9://. ]+)"';
$content = file_get_contents(FILE NAME HERE);
preg_match($pattern, $content, $matches);

print_r($matches);

Здесь будут перечислены все ссылки.И тогда вы можете их разобрать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...