Обработка ошибок PHP DOMDocument - PullRequest
       28

Обработка ошибок PHP DOMDocument

0 голосов
/ 31 декабря 2010

У меня возникают проблемы при попытке написать оператор if для DOM, который проверит, пусто ли значение $html. Однако всякий раз, когда HTML-страница оказывается пустой, она просто удаляет все, что будет ниже DOM (включая то, что я должен был проверить, было ли это пустым).

$html = file_get_contents("http://example.com/");
$dom = new DOMDocument;
@$dom->loadHTML($html);
$links = $dom->getElementById('dividhere')->getElementsByTagName('img');
foreach ($links as $link)
{
    echo $link->getAttribute('src');
}

Все, что это делает, это захватывает URL-адрес изображения в указанном элементе div, который прекрасно работает, пока страница не станет пустой HTML-страницей.

Я пытался использовать SimpleHTMLDOM, который тоже не работал (он даже не извлекал изображение на рабочих страницах). Я случайно что-то пропустил с этим или я просто что-то упускаю в обоих?

include_once('simple_html_dom.php')
$html = file_get_html("http://example.com/");
foreach($html->find('div[id="dividhere"]') as $div)
{
    if(empty($div->src))
    {
        continue;
    }
    echo $div->src;
}

1 Ответ

1 голос
/ 31 декабря 2010

Избавьтесь от переменной $ html и просто загрузите файл в $ dom, выполнив @$dom->loadHTMLFile("http://example.com/");, а затем добавьте оператор if, чтобы проверить, пусто ли $ dom.

...