-1

我有以下代码:

  $url = explode('\n', $urls);
  $count = 0;
  foreach($url as $image) {
  $img = 'c://wamp/www/www.mysite.com/uploads/images/cat1/image'.$count++.'.png';
    file_put_contents($img, $image);
    }

在变量 $urls 中有许多带有 .png 格式图像的 url。

我尝试为每个新图像创建创建foreach,例如:image1.png、image2.png。这没用:

谢谢你的帮助

4

2 回答 2

2

如果要将图像数据保存在文件中,则需要从 url 中检索它:

 $url = explode('\n', $urls);
  $count = 0;
  foreach($url as $image) {
  $img = 'c://wamp/www/www.mysite.com/uploads/images/cat1/image'.$count++.'.png';
    file_put_contents($img, file_get_contents($image));
   }
于 2016-01-04T19:44:24.320 回答
1

你的代码

file_put_contents($img, $image);

将 $image 的内容,即 url,放入文件中,而不是 url “后面”的内容。
但是,您可以将流资源作为参数 $data 传递给 file_put_contents,而不是字符串。因此通过 fopen/http-wrapper 打开流,检查结果并将其传递给 file_put_contents。

$url = explode('\n', $urls);
foreach($url as $count=>$image) {
    $img = 'c://wamp/www/www.mysite.com/uploads/images/cat1/image'.$count.'.png';
    $fp = fopen($image, 'rb');
    if ( !$fp ) {
        yourErrorHandler();
    }
    else {
        $result = file_put_contents($img, $fp);
        // check $result here....
    }
}
于 2016-01-04T19:45:44.643 回答