mur*_*hna 11 http httpwebrequest
我正在访问其他网站的图片.当复制"一些(不是全部)"图像时,我收到"无法打开流:HTTP请求失败!HTTP/1.1 400错误请求"错误.这是我的代码.
$img=$_GET['img']; //another website url
$file=$img;
function getFileextension($file) {
return end(explode(".", $file));
}
$fileext=getFileextension($file);
if($fileext=='jpg' || $fileext=='gif' || $fileext=='jpeg' || $fileext=='png' || $fileext=='x-png' || $fileext=='pjpeg'){
if($img!=''){
$rand_variable1=rand(10000,100000);
$node_online_name1=$rand_variable1."image.".$fileext;
$s=copy($img,"images/".$node_online_name1);
Run Code Online (Sandbox Code Playgroud)
}
Rav*_*mar 16
我认为preg_replace更有意义,因为它可以与最新版本的PHP一起使用,因为ereg_replace不适合我被弃用
$url = preg_replace("/ /", "%20", $url);
Run Code Online (Sandbox Code Playgroud)
小智 11
我有同样的问题,但它解决了
$url = str_replace(" ", "%20", $url);
Run Code Online (Sandbox Code Playgroud)
感谢Cello_Guy的帖子.
小智 6
我能想到的唯一问题是URL中很可能有空格,很可能是文件名中。url中的所有空格都需要转换为正确的编码,即%20。
如果您有这样的文件名:
“ http://www.somewhere.com/images/img 1.jpg”
您将收到上述错误,但是这样做:
“ http://www.somewhere.com/images/img%201.jpg ”
您应该遇到问题。
只需使用str_replace()替换空格(“”)即可获得正确的编码(“%20”)
看起来像这样:
$url = str_replace(" ", "%20", $url);
Run Code Online (Sandbox Code Playgroud)
有关更多信息,str_replace()请查看PHP手册。
| 归档时间: |
|
| 查看次数: |
35476 次 |
| 最近记录: |