Не получается правильный nodeValue - PullRequest
0 голосов
/ 26 января 2019

Я думал, что некоторое время назад это работало, но я обнаружил, что оно не всегда работает должным образом, и я пытаюсь разобраться, почему.

$resolver = new URLResolver();
$resolve= $resolver->resolveURL($site);
$resolved = $resolve->getURL();
$parsing = file_get_contents_curl($resolved);
$doc = new DOMDocument();
@$doc->loadHTML($parsing);

$para = $doc->getElementsByTagName('p');
$firstparagraph = $para->item(0)->nodeValue;
echo $firstparagraph;

Я ожидаю, что вышеприведенное вернет содержимое первогоэкземпляр <p>.Обычно это работает, но не всегда.

Иногда вместо этого я получаю возврат, такой как:

string(5335) "HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked Connection: keep-alive Keep-Alive: timeout=15 Date: Sat, 26 Jan 2019 18:37:18 GMT Server: Apa..........

Этот конкретный вывод возвращается из https://gener8ads.com/referral/?ref=test

Когда я получаю вышеуказанный вывод, я нахожу, еслиЯ изменяю на item(1), он корректно возвращает $firstparagraph.

Мне интересно, почему это происходит, и, возможно, я могу написать правильную проверку, когда это произойдет, чтобы был возвращен правильный первый абзац.Я понимаю, что в этом случае я мог бы просто проверить вывод HTTP / и, если он существует, перейти к item(1), но я не знаю, что это решит эту проблему бесконечно.

Так что вопрос в том, чтозаставляя его вернуть это вместо первого <p>?

...