PHP - file_put_contents сохраняет только половину файлов? - PullRequest
0 голосов
/ 02 декабря 2010

Понятия не имею, что происходит!Существует ли ограничение на количество файлов, которые можно сохранить за одно выполнение?

Итак, у меня есть массив со списком URL-адресов изображений на другом сервере.Это работает как надо и возвращает действительные URL.Проблема заключается в том, что при попытке сохранить их, только 52 файла сохраняются при возвращении 100 URL.Как вы видите, я отображаю путь к изображению перед тем, как сохранить изображение, и после подсчета строк он добавляет до 100. (Нет, конечно, я не подсчитывал их вручную!)цикл:

for ($i=0; $i <= $count; ++$i) {
    $url = $response['images'][$i]['image'];
    $path = 'exported/'.$response['images'][$i]['date'].'.jpg';

    echo $response['images'][$i]['image'].'<br />';
    file_put_contents($path, file_get_contents($url));
}

Есть идеи, что происходит?Большое спасибо!

Ответы [ 3 ]

2 голосов
/ 02 декабря 2010

Имеют ли некоторые записи одинаковое значение для $response['images'][$i]['date']?Возможно, вы генерируете одно и то же имя выходного файла ($path) и файлы перезаписывают друг друга.Вы можете попробовать повторить $response['images'][$i]['date'], чтобы убедиться,

0 голосов
/ 02 декабря 2010

Вы можете отредактировать файл php.ini в /etc/php5/cgi/php.ini (может быть в другом месте в / etc / php [x] / xxx) и выполнить следующие настройки:

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 30     ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
memory_limit = 16M      ; Maximum amount of memory a script may consume (16MB)
0 голосов
/ 02 декабря 2010

Возможно, вы достигли тайм-аута сценария, пытаясь загрузить 100 изображений из PHP.Как язык сценариев, PHP должен работать только в течение 1-2000 мс.Тем не менее, я полагаю, что при базовой установке PHP выполнение скрипта выполняется в течение 30 секунд, что, вероятно, недостаточно для вашего скрипта.

...