我有这个网址
'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);
}
所有网址都在我的script.txt文件中,所以我将它们存储在一个数组中,然后逐个调用每个网址,但是它说
failed to open stream: Invalid argument
有什么遗漏或错误吗?
答案 0 :(得分: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_errors
和error_reporting
值。 PHP应该大声抱怨无法打开URL。
答案 1 :(得分: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