Выдает ошибку: 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);
}
?>
Потому что соответствие не найдено. Скорее всего по причине неверного указания критерия поиска. Попробуйте так:
$class = $html->find('div.NewSearchResults'); // span. или что там у вас
foreach ($class as $node) {
// Тут поиск нужных потомков у каждой ноды
Функция str_get_html()
возвращает false
в случае если ей передано пустую строку(либо значение которое может быть приведено к false
) или эта строка превышает 600000 символов. Вероятнее всего страница для парсинга слишком большая (либо CURL
вам вернул пустую_строку/false).
Тут $html
присваивается false
:
$html = str_get_html($server_output);
А тут на false
вы вызываете функцию find()
:
$html->find('.NewSearchResults td a')
Задача таковаХочу выводить записи по дополнительному полю
Всем здравствуйтеВаяю интернет-каталог на WordPress + WooCommerce, столкнулся с проблемой
Всем доброго времени суток! Подскажите, не могу понять как добавить свой сверстанный шаблон страницы в тему ElementorДобавляю страницу с необходимым...