2016-10-05 170 views
1

保存圖像我有這個URL如何下載和鏈接

'http://2.bp.blogspot.com/-LBbpkomI7JQ/VnLmeFZANgI/AAAAAAAAWhc/MsdZjtxN0HQ/s0-Ic42/RCO001.jpg ' 

我試圖做一些搜索,這樣做,

$file = fopen("C:\Users\Alex\Desktop\script.txt", "r"); 
$links = array(); 

while (!feof($file)) { 
$links[] = fgets($file); 
} 

fclose($file); 

foreach($links as $num => $link) 
{ 
echo "'".$link."'"; 
save_image("'".$link."'","'".$num."'".".jpg"); 

} 

var_dump($links); 
function save_image($inPath,$outPath) 
{ //Download images from remote server 
$in= fopen($inPath, "rb"); 
$out= fopen($outPath, "wb"); 
while ($chunk = fread($in,8192)) 
{ 
    fwrite($out, $chunk, 8192); 
} 
fclose($in); 
fclose($out); 
} 

所有URL都在我的script.txt文件,所以我我將它們存儲在一個數組中然後調用每個url一個接一個,但它說

failed to open stream: Invalid argument 

任何錯過或錯誤?

回答

1

你可以試試這個實施(對我的偉大工程):

<?php 

$links = explode("\n", file_get_contents("C:\Users\Alex\Desktop\script.txt")); 

foreach($links as $num => $link) 
{ 
    echo $link . "\n"; 
    save_image($link, $num.".jpg"); 
} 

function save_image($inPath, $outPath) 
{ 
    $inPath = trim($inPath); 
    if ($inPath != "") { 
     file_put_contents($outPath, file_get_contents($inPath)); 
    } 
} 

假設你script.txt看起來像這樣

http://2.bp.blogspot.com/-LBbpkomI7JQ/VnLmeFZANgI/AAAAAAAAWhc/MsdZjtxN0HQ/s0-Ic42/RCO001.jpg 
1

在這一行:

$file = fopen("C:\Users\Alex\Desktop\script.txt", "r"); 

你的反斜槓可能被轉換成PHP特殊字符,這可能會導致一個問題,所以 看看這個話題: failed to open stream: Invalid argument

第二件事: 這可能是一個問題fopen configuration

編輯您的php.ini並設置:

allow_url_fopen = On 

您可以檢查這個值(它可能是假的):

var_dump(ini_get('allow_url_fopen')); 

你需要到您的虛擬主機說話,或嘗試其它方法。 Mabye CURL已啓用?

您還應該檢查您的display_errorserror_reporting的值。 PHP應該大聲抱怨無法打開該URL。

+0

這是了! – Alex