2016-01-04 24 views
-1

重命名我有以下代码:File_put_content各种图像,并与数

$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); 
    } 

在变量$网址与格式巴纽图片的网址。

我尝试为每个新建的图像创建foreach,例如:image1.png,image2.png。它不工作:

感谢所有帮助

+0

*它不起作用* - 什么不起作用?它计数不正确吗?你有错误吗? – mezmi

+1

这会正确创建以计数命名的图像文件。 但打开时图像为空。我尝试了下面的建议,但也失败了 – Gislef

回答

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)); 
    } 
+0

谢谢。正确创建一系列图像,但只有第一张图像能正确创建。 其他图像是空的,php出现错误的所有图像:警告:file_get_contents('https:// urlimage'):未能打开流:C:\ wamp \ www \ www.www.mysite.com \网站\ home.php在线59 – Gislef

+0

@Zeli你有没有试过在浏览器中打开问题网址?他们加载好吗? – Steve

+0

是在浏览器中打开时通常会携带的图像 – Gislef

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.... 
    } 
} 
+0

谢谢,它只保存了其他人没有创建的第一个图像,并出现php错误。 '警告:fopen('https:// urlimage'):未能打开流:C:\ wamp \ www \ www.www.mysite.com \ site \ home.php在第60行中的无效参数和'致命错误:调用未定义的函数yourErrorHandler()在C:\ wamp \ www \ www.mysite.com \ site \ home.php上62行 – Gislef