Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php保存网页中的图像_Php_Curl - Fatal编程技术网

使用php保存网页中的图像

使用php保存网页中的图像,php,curl,Php,Curl,我知道我的问题非常类似于,我使用问题的答案作为我的解决方案,但我无法让它工作 我使用生成任何给定URL的缩略图(示例:)。然后使用cURL将图像保存到服务器上的文件夹中 我不确定问题是否在于URL实际上不是图像URL(即example.com/image.jpg)或.html/.php URL,或者我做得不对。我以前从未使用过卷发,所以很可能我做得不对 我正在将图像的路径保存到一个MySQL数据库中,该数据库工作正常。但是,图像实际上并不保存在指定的文件夹中。文件夹上的权限设置正确,因此我认为这

我知道我的问题非常类似于,我使用问题的答案作为我的解决方案,但我无法让它工作

我使用生成任何给定URL的缩略图(示例:)。然后使用cURL将图像保存到服务器上的文件夹中

我不确定问题是否在于URL实际上不是图像URL(即example.com/image.jpg)或.html/.php URL,或者我做得不对。我以前从未使用过卷发,所以很可能我做得不对

我正在将图像的路径保存到一个MySQL数据库中,该数据库工作正常。但是,图像实际上并不保存在指定的文件夹中。文件夹上的权限设置正确,因此我认为这不是权限问题。我还将
allow\u url\u fopen
设置为打开,以确保打开

我的代码如下。有人能给我指一下这个的正确方向吗

$url = $_POST['url'];
$url_new = 'http://immediatenet.com/t/m?Size=1024x768&URL='.$url;
$img = "/users/images/".$url.".jpg";
$ch = curl_init($url_new);
$fp = fopen($img, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
curl_close($ch);
fclose($fp);
你确定
$img=“/users/images/”$url..jpg”是否有效。。你的根目录中真的有用户文件夹吗


如果没有,请更正,应该可以。

如果
$url
包含正斜杠(与大多数url一样),这些将被视为
$img
路径名中的目录分隔符。您需要用其他字符替换斜杠,或者创建所有必要的目录

$img = "/users/images/".str_replace('/', '_', $url).".jpg";

$url
的值是多少?如果它包含
/
字符,
$img
将是子目录的路径,您需要确保这些子目录存在。检查
fopen()
中的错误。如果
$url
http://google.com
,你需要有一个目录
/users/images/http:
。哇。我真是个白痴。我刚意识到你完全正确。那些前斜杠把事情搞砸了。非常感谢。你应该把这个作为答案,我会接受。。。因为我现在觉得自己像个白痴,所以很不情愿。希望能解决这个问题。非常感谢你。你帮我省去了几个小时的麻烦。肯定有一个用户文件夹。我以前曾将图像保存到该图像文件夹中(用于阿凡达上载),但这一个似乎不起作用。我所说的根是指文件系统根(您使用的是unix类型),而不是您的webroot。再次感谢,如果有人遇到同样的问题,请稍后参考。我还遇到了一个问题,即它无法使用“/users/…”进行保存。我不得不把它改成“/users/…”。