保存图像php代码

时间:2011-03-15 05:30:34

标签: php

我正在尝试从网址保存图片。

<?php
$number = 200;
while ($number <= 1000){
$url = 'http://site.com/productphotos/gallery_'.$number.'-l.jpg';
$img = ''.$number.'.jpg';
file_put_contents($img, file_get_contents($url));
}
$number++;
?>

所以有site.com/productphotos/gallery200-100-l.jpg

为什么这不起作用?

3 个答案:

答案 0 :(得分:3)

除了您的网址格式与给定示例的格式不匹配(如Alex的答案),您的循环将无限执行($number vs $num)。

尝试使用此循环

for ($number = 200; $number <= 1000; $number++)

编辑:至少,它是在您编辑问题之前完成的; - )

编辑#2:除了语法错误,我不认为PHP是解决这个“问题”的最佳解决方案。您可以使用wget轻松编写shell /批处理脚本来获取图像。

#!/bin/bash
for i in {200..1000}; do
    wget "http://example.com/gallery/${i}.jpg"
done

答案 1 :(得分:3)

似乎您在关闭while(){}函数后增加$ number ...

答案 2 :(得分:2)

正在制作的字符串在每次迭代时都是这样的......

http://site.com/productphotos/gallery_200-l.jpg

...与你引用的内容不符......

http://site.com/productphotos/gallery200-100-l.jpg

也可能是因为你allow_url_fopen()关闭了。如果您无法更改它并且它已关闭,请使用cURL等库来获取图像。

此外,您正在从该循环发出800个请求,这是一个相当大的数量。您可以在该循环中使用sleep(1)并确保脚本不会与set_time_limit(0)超时,从而为PHP提供喘息机会。当然,这在最终用户发起的HTTP请求中的速度还不够快,所以请尝试从调度程序(如Cron作业)运行此过程。

如果你真的想要一个特定的答案,告诉我 它不起作用 - 任何错误,图像保存但是错误等等。