PHP - file_put_contents只保存了一半的文件?

时间:2010-12-02 20:08:24

标签: php path save

我不知道发生了什么事!每次执行可以保存多少文件是否有限制?

所以,我有一个数组,其中列出了另一台服务器上的图像的URL。这应该工作,它返回有效的URL。问题是当尝试保存它们时,返回100个URL时只保存52个文件。如你所见,我在保存图像之前回显了图像路径,并且在计算行数之后它累计达到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 个答案:

答案 0 :(得分:2)

某些条目是否具有$response['images'][$i]['date']的相同值?您可能正在生成相同的输出文件名($path)并且文件会相互覆盖。您可以尝试回显$response['images'][$i]['date']以确保

答案 1 :(得分:0)

您可能正在尝试从PHP下载100张图片时达到脚本超时。作为一种脚本语言,PHP只能运行1-2000毫秒。但是,我认为基本的PHP安装设置的脚本执行时间为30秒,这对于你的脚本来说可能不够长。

答案 2 :(得分:0)

您可能想要编辑/etc/php5/cgi/php.ini中的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)