2016-01-04 27 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