@grenline123123

Крашит скрипт, как исправить?

После вывода 73 записей на 74 выдает ошибку
Warning: file_get_contents(): Filename cannot be empty in C:\OPS\OSPanel\domains\localhost\simple_html_dom.php on line 82

Fatal error: Uncaught Error: Call to a member function find() on bool in C:\OPS\OSPanel\domains\localhost\index.php:70 Stack trace: #0 {main} thrown in C:\OPS\OSPanel\domains\localhost\index.php on line 70


При этом если смотреть через var_dump, то никаких пустых полей нет, в массиве порядка 600 array`s, без понятия в чем прикол

Код:
require 'simple_html_dom.php'; // подключаем библиотеку
require 'db.php'; // подключаем базу данных

$html = file_get_html('https://iaai.com/ru-ru/LiveAuctionsCalendar#stay_here'); // что парсим

# Главная информация
$massive_name = []; // Массив для названия объявления
$massive_link = []; // Массив ссылок на аукцион
$massive_base = []; 

# Получаем ссылки для аукционов
foreach($html->find('.table-cell--status a') as $element) { // ищем нужный елемент
    $massive_name[] = [
        'https://iaai.com/ru-ru/'.$element->href // запись в массив ссылки на аукционные объявление
    ];
}

# Достаем ссылки аукционов
$len_name = count($massive_name);

for($i = 0; $i < 18; $i++) {
    $href = file_get_html($massive_name[$i][0]); // что парсим
    foreach($href->find('.js-show-hide-image a') as $element) { // ищем нужный елемент
        $massive_link[] = [
            $element->href // запись в массив прямой ссылки на аукционное объявление
        ];
    }
}
$len_link = count($massive_link);
for($i = 0; $i < $len_link; $i++) {
    
    $href = file_get_html($massive_link[$i][0]); // что парсим

    $info = $href->find('.data-list__item span'); // ищем нужный елемент
    $info_ = $href->find('.data-list__item a'); // ищем нужный елемент
    
    $get = file_get_contents('https://bid.cars/app/search/fast/'.strip_tags($info[1])); // ищем лот
    if($get != '') {
        $obj = json_decode($get); // переводим json в массив php 
        $vin_get = file_get_html($obj->{'url'}); // переходим на страницу лота
        echo '('.$i.')'.$obj->{'url'}.'<br>';
    }
    $vin = $vin_get->find('.vin-drop h1'); // ищем нужный елемент
    $sell = $vin_get->find('.h5 span i b'); // ищем нужный елемент
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
@grenline123123 Автор вопроса
for($i = 0; $i < $len_link; $i++) {
    
    $href = file_get_html($massive_link[$i][0]); // что парсим

    $info = $href->find('.data-list__item span'); // ищем нужный елемент
    $info_ = $href->find('.data-list__item a'); // ищем нужный елемент

    $get = file_get_contents('https://bid.cars/app/search/fast/'.strip_tags($info[1]));
    $obj = json_decode($get);

    if($obj->{'status'} === 'ok') {
        $vin_get = file_get_html($obj->{'url'}); // переходим на страницу лота

        $vin = $vin_get->find('.vin-drop h1'); // ищем нужный елемент
        $sell = $vin_get->find('.h5 span i b'); // ищем нужный елемент


Проверка статуса с json помогла
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы