【问题标题】:how to download images in this PHP loop and rename如何在这个 PHP 循环中下载图像并重命名
【发布时间】:2013-09-03 08:49:22
【问题描述】:

这可能是一个奇怪的问题,但我这里有这个循环:

foreach ($friends["data"] as $value) {
    echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture?type=large"/> <br />
}

运行此程序会打开 2000 多张图像。

我需要将这些图像中的每一个下载到我桌面上名为 1.jpg、2.jpg、3.jpg 等的文件夹中。

坦率地说,这对我来说很奇怪,我什至不知道如何尝试和研究如何做到这一点。这些图像并不大,但确实需要保持有序,因为它们稍后将与带编号的标题对齐。

非常感谢任何帮助!

我试过了:

foreach ($friends["data"] as $value) {

        $i = 1;

        echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture?type=large"/> <br />'; 
        $url = 'https://graph.facebook.com/' . $value["id"] . '/picture?type=large';
        $img = '/me/Desktop/Facebook/'.$i.'.jpg';
        file_put_contents($img, file_get_contents($url));
        $i++;



    }

但我得到了错误: 警告:file_put_contents(/me/Desktop/Facebook/1.jpg) [function.file-put-contents]:无法打开流:第 125 行的 /home/blahblah blah 中没有此类文件或目录

【问题讨论】:

  • 你可以选择两种方法来做这样的事情:1)使用 Javascript 将所有这些图像下载到你的客户端。 2nd) 在你的 PHP 脚本中收集所有图像并将它们放在一个 zip 文件中并提供这个文件供下载。
  • 我喜欢将其设为下载的想法。我看到了这个:php.net/manual/en/function.copy.php你如何确定目的地?
  • 等等,你的桌面是在运行这个 PHP 脚本的同一台机器上吗?我以为您希望它在服务器上运行,然后将其下载到客户端。请问您能说得清楚一点吗?
  • 你的脚本中的问题是你试图写入一个服务器由于权限而无法读取/写入的文件夹,试试@TaeL答案的代码或者你可以使用curl下载它跨度>
  • 在服务器上运行并下载到客户端后很好-但我想将所有图像保存在一个 zip 文件夹中以便于下载。

标签: php download


【解决方案1】:

看起来很简单。

$i = 1;
foreach ($friends["data"] as $value) {
    $url = 'https://graph.facebook.com/' . $value["id"] . '/picture?type=large';
    copy($url,"$i.jpg");
    $i++;
}

检查您放置的目录 1.jpg、2.jpg、3.jpg ...

【讨论】:

  • hmm- 我收到了这个错误,只收到了前 150 张图片:致命错误:/home/xxx/public_html/example.com/facebooksdk/facebook-php- 中超过了 30 秒的最大执行时间sdk/examples/test.php 第 135 行
  • 这就是你的代码执行超过 30 秒的原因(我想很多图像 :))。尝试分页,或者如果您不能这样做,请在脚本开头使用它来增加执行时间:ini_set('max_execution_time', 600);(我认为 600 秒是 10 分钟就足够了),但我认为最好使用分页来优化您的脚本
  • 谢谢。我也在这里发现了-stackoverflow.com/questions/5164930/…
  • 它现在正在运行...似乎运行良好,但会等到它完成后再打勾。
  • 嗯,文件命名为自己,但我刚刚下载了一对,得到“图像“view-source:example.com/facebooksdk/facebook-php-sdk/examples/photos/…”无法显示,因为它包含错误。”并且图片都是0kb。
猜你喜欢
  • 1970-01-01
  • 2017-06-30
  • 2016-11-14
  • 2021-01-17
  • 1970-01-01
  • 2022-09-23
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多