2015-07-01 2 views
1
$url = 'http://www.test.com/'; 
$dom = new DOMDocument; 
@$dom->loadHTMLFile($url); 

$links = $dom->getElementsByTagName('a'); 
foreach ($links as $link) { 

В настоящее время я использую вышеупомянутый скрипт для ссылок на страницу, однако я обнаружил, что всегда есть дубликаты ссылок. На странице есть изображение, которое связано, а затем текстовая ссылка, которая идет по той же ссылке. Есть ли простой способ захватить только текстовую ссылку, а не ссылку на изображение?Захват ссылок PHP без ссылок на изображения

+1

Другой вариант - просто удалить дубликаты из вашего набора. Клавиши массива уникальны и, таким образом, хорошо работают для такого типа ситуаций. Таким образом, если ссылка используется только на изображении, вы не пропустите его. – ficuscr

+0

'@ Andy UK' вы протестировали все ответы? –

+0

@ Энди, пожалуйста, отметьте и проголосуйте за ответ за помощь другим. спасибо –

ответ

3

Как я уже говорил, я мог бы принять подход к очистке обманов в моем результирующем наборе. Не уверен, что вы соскабливаете, но что, если ссылка только используется с изображением?

Вы можете даже посчитать случаи.

$url = 'http://www.test.com/'; 
$dom = new DOMDocument; 
@$dom->loadHTMLFile($url); 

$links = $dom->getElementsByTagName('a'); 
$distinctLinks = []; 
foreach ($links as $link) { 
    $distinctLinks[$link] = (int) $distinctLinks[$link] + 1; 
} 
+0

Всегда будет ссылка, но не обязательно изображение. –

Смежные вопросы