Написал однопоточный парсер...
Использую simple_html_dom_php исключительно ради функции find.
Парсер вроде работает, но часто абсолютно в рандомных местах возникает ошибка:
Fatal error: Uncaught Error: Call to a member function find() on boolean in G:\OSPanel\domains\GDZ2\parser_long.php:177 Stack trace: #0 {main} thrown in G:\OSPanel\domains\GDZ2\parser_long.php on line 177
Вот кусочек кода где я юзаю эту функцию:
foreach ($numbers_page as $key3 => $numbers_data) {
$num_link = $numbers_data->href;
$num_text = $numbers_data->innertext;
$html_num = get_html($num_link);
$img_hhh = $html_num->find('.in p img');
//Скачать картинку
foreach ($img_hhh as $key4 => $img) {
$file_stream = file_get_contents($img->src);
$link_img_num_arr = explode('/', $img->src);
$img_name_numbers = $link_img_num_arr[8];
echo $img_name_numbers.'<br>';
$book_src_for_num = "Images/gdz/form".$data_books['form']."/".$subjekts_arr[$data_books['subject']]."/".$name."/numbers/";
echo $book_src_for_num;
file_put_contents($book_src_for_num.$img_name_numbers, $file_stream);
$img_for_BD = $book_src_for_num.$img_name_numbers;
$num = $for_num.'('.$num_text.')';
$sql_num = "INSERT INTO `numbers_book` (newid,id,num,img) VALUES('$newid_num','$newid_topick','$num', '$img_for_BD')";
if(mysqli_query($connection, $sql_num)){
echo "Отправлено<br>";
}else{
echo 'Ошибка! '.mysqli_error($connection)."<br>";
}
$newid_num++;
}
}
Подскажите изза чего так случается...