2010-03-12 73 views
0

我在PHP中使用getimagesize函数,并且路径字符串包含&符号,否则很好。 页面给我错误getimagesize()被调用。看看源代码,虽然,我看到的符号正在通过&而不仅仅是& 我认为这是导致错误,因为PHP不需要将其转换为html标签以找到路径,右?PHP getimagesize与字符串中的字符串创建错误

以下是错误:

Warning: getimagesize(image.php?name=username&pic=picture) [function.getimagesize]: failed to open stream: No such file or directory

+2

请发帖,您的代码。看起来你正在向getimagesize传递一个无效的参数。 – codaddict 2010-03-12 03:55:51

+0

像什么?我会粘贴它,但它在我的另一台机器上。这只是一个URL,是一个字符串。 $ location =“image.php?name = username&pic = picture”; $ size = getimagesize($ location); – RobHardgood 2010-03-12 03:58:44

回答

1

如果你想和getimagesize通过发送一个HTTP请求,下载它从远程服务器获取图像,你需要使用绝对URL (从http://domainname.ext/...


例如,代码这部分:

$url = 'http://static.php.net/www.php.net/images/php.gif?test=glop&blah=huhu'; 
$data = getimagesize($url); 
var_dump($data); 

给我:

array 
    0 => int 120 
    1 => int 67 
    2 => int 1 
    3 => string 'width="120" height="67"' (length=23) 
    'bits' => int 7 
    'channels' => int 3 
    'mime' => string 'image/gif' (length=9) 


如果你不希望获取远程图像,那么,你需要指定到同一台机器比PHP运行在一个上存在的图像的路径。

而就你而言,我怀疑你有一个物理文件叫'image.php?name=username&pic=picture'

+0

并非如此。我有同样的问题,我正在使用绝对路径。错误日志显示如下:PHP Warning:getimagesize(https://graph.facebook.com/1234/picture?type=normal & access_token = SECRETTOKENSUPERDUPER)[function.getimagesize]:无法打开流:HTTP请求失败! – eipipuz 2011-10-13 21:57:21

+0

问题是&符号被url编码为& – eipipuz 2011-10-13 21:59:31