Uncaught Error: Call to a member function find() on bool

190
10 февраля 2020, 13:00

Выдает ошибку: Uncaught Error: Call to a member function find() on bool. $server_output почему то равен false не понимаю почему.

parser.php

<?php
include('simple_html_dom.php');
if ($fh = fopen("C:/xampp/htdocs/parser/links.txt", 'r')) {
    while (!feof($fh)) {
        $line = fgets($fh);
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL,"https://iapps.courts.state.ny.us/nyscef/".$line);


curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_HEADER, true);
$headers = ['Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3',
'Accept-Encoding: gzip, deflate, br',
'Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7,sr;q=0.6,it;q=0.5,kk;q=0.4',
'Cache-Control: max-age=0',
'Connection: keep-alive',
'Cookie: JSESSIONID=EA0C6D3E7F9FC7DD03FF41EB1F281782.server2037; TS01ab7d00=01084fa678df27b77cc01b6750c9ef3cfebfb829602f5a7d0bdbacaa3fde7b9e15f3920c66b37868e859f793ab57207c1ad4a0e6c18ec5fc11d6cc9914f5f7c69057ee973f; ucs_nyscef=IO9NZsdIfD6QHC%2FsyRZZOqnUirnU7gwiwur6oB%2FUTq8%3D; TS010e0f15_77=08b9a1dceaab2800ac68e0313ef4e1de46eefec794427812804f9ed5d42cb838772fc94d8f8de4bd5e680e93645bc11608e8a6680982400080139a350084199c9c7efb96c1fdfa0888fe2c085827ccaed7658d0e7e889715d025d0c6949d0326c95e19877e8df2c6423fdffef0e8db0428dec20ab73662ae; TS010e0f15=01084fa6785e343e5202dcca0cf9db5e8ef0a3dcbe2f5a7d0bdbacaa3fde7b9e15f3920c6645b622c3b318b920ecc07e70ceabd5211f4f15e61366717d91caac194687290c',
'Host: iapps.courts.state.ny.us',
'Upgrade-Insecure-Requests: 1',
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36',
'Referer: https://iapps.courts.state.ny.us/nyscef/CaseSearch?TAB=name'
];
curl_setopt($ch1, CURLOPT_HTTPHEADER, $headers);
$server_output = curl_exec ($ch1);

var_dump($server_output);
curl_close($ch1);
$html = str_get_html($server_output);

    foreach($html->find('.NewSearchResults td a') as $tr){
        /////////////
        $string = 'https://iapps.courts.state.ny.us/nyscef/'.$tr->attr['href'];
        $pattern = "/\s/i";
        $replacement = "%20";
        echo preg_replace($pattern, $replacement ,$string."<br>");
        // //////////
            }
$html->clear();
unset($html);

sleep(2);
}
fclose($fh);
}

?>
Answer 1

Потому что соответствие не найдено. Скорее всего по причине неверного указания критерия поиска. Попробуйте так:

$class = $html->find('div.NewSearchResults'); // span. или что там у вас
foreach ($class as $node) {
    // Тут поиск нужных потомков у каждой ноды
Answer 2

Функция str_get_html() возвращает false в случае если ей передано пустую строку(либо значение которое может быть приведено к false) или эта строка превышает 600000 символов. Вероятнее всего страница для парсинга слишком большая (либо CURL вам вернул пустую_строку/false).

Тут $html присваивается false: $html = str_get_html($server_output);

А тут на false вы вызываете функцию find(): $html->find('.NewSearchResults td a')

READ ALSO
Вопрос про произвольное поле WordPress

Вопрос про произвольное поле WordPress

Задача таковаХочу выводить записи по дополнительному полю

231
Дамп БД кликом по кнопке

Дамп БД кликом по кнопке

Написал дамп БД в csv файл, путем клика по кнопке

211
Назначение одного и того же медиафайла WordPress разным записям одновременно

Назначение одного и того же медиафайла WordPress разным записям одновременно

Всем здравствуйтеВаяю интернет-каталог на WordPress + WooCommerce, столкнулся с проблемой

162
Как создать шаблон страницы на WP Elementor

Как создать шаблон страницы на WP Elementor

Всем доброго времени суток! Подскажите, не могу понять как добавить свой сверстанный шаблон страницы в тему ElementorДобавляю страницу с необходимым...

186