PHP - пытается загрузить URL-адреса из CSV, он останавливается на случайных URL-адресов - PullRequest
0 голосов
/ 11 мая 2018

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

У меня есть CSV с 2 столбцами, идентификатором и URL-адресом, 100 строк.У меня есть следующий код для циклического перемещения по строкам CSV и использования метода put_file_contents () для загрузки данных по URL-адресам в файлы с именем [ID] .jpg.

Я также каждый раз выводю данные на экранвокруг цикла и добавив строку в «log.txt».По какой-то причине он просто перестает работать после случайного URL и ничего не помещает в error_log.

Иногда это после 17 URL, иногда после 27, иногда после 49. Я в растерянности из-започему происходит сбой.

<?php

set_time_limit(3600);

$data = array_map('str_getcsv', file('IDtoImageURL2.csv'));

$total = 0;

echo "Count total: ".count($data)."<br /><br />";

for($i = 1; $i < count($data); $i++)
{
    file_put_contents("log.txt", $data[$i][1]." - ", FILE_APPEND | LOCK_EX);
    $total++;

    $url = $data[$i][1];
    $img = "photos/".$data[$i][0].'.jpg';
    $img2 = "photos/named/".$data[$i][0].'.jpg';

    echo "<b>Getting ".$data[$i][0].":</b><br />";
    echo "URL: ".$data[$i][1]."<br />";
    echo "putting $img<br />";
    echo "putting $img2<br />";

    $imgData = file_get_contents($url);

    if($imgData)
    {
        file_put_contents($img, $imgData);
        file_put_contents($img2, $imgData);

        echo "<b>Done</b><br /><br />";

        file_put_contents("log.txt", "done".PHP_EOL, FILE_APPEND | LOCK_EX);
    }
    else
    {
        echo "<b>Failed</b><br /><br />";

        file_put_contents("log.txt", "failed".PHP_EOL, FILE_APPEND | LOCK_EX);
    }   
}

echo "Total: ".$total;

?>

Вот данные CSV, с которыми я работаю.

Странно то, что иногда он отправляет часть вывода эха вэкран, а иногда он просто молча ошибки с пустым осыпи.URL-адреса перебираются в одном и том же порядке, и поэтому я не понимаю, почему результаты продолжают различаться.Любой вклад будет принят с благодарностью.

Спасибо за ваше время

...