2010-12-02 75 views
0

我正在使用PHP和getimagesize以获取有关我的脚本图像信息...没有URL文件访问PHP和getimagesize

$thumb = "http://i.ytimg.com/vi/u6XAPnuFjJc/hqdefault.jpg"; 
$imageInfo = getimagesize($thumb); 

的问题是,在我的服务器之一,它返回错误:

getimagesize() [function.getimagesize]: URL file-access is disabled in the server configuration

我无法修复此特定服务器上的配置问题。我想知道是否有人对我如何解决这个问题有任何想法。是否有可能拍摄图像,将其保存到临时文件,然后根据临时图像使用getimagesize?一旦完成,临时文件将需要删除。

如果这是可能的,我将如何做到这一点?

+0

你有`curl`吗? – drudge 2010-12-02 01:02:49

回答

0

由于您可以更改服务器配置,请检查CURL是否已启用。

如果是这样,那么你可以使用CURL在本地复制图像并在其上运行getimagesize。

http://php.net/manual/en/book.curl.php

+0

谢谢你的帮助......好吧,如果我没有卷曲怎么办?我确实有:Zend_Http_Client。我将如何使用它? – 2010-12-02 06:14:52

+0

您可以使用Zend_HTTP_Client在本地下载图像文件,然后检查大小。文档在这里:http://framework.zend.com/manual/en/zend.http.client.advanced.html(数据流部分在底部) – sikander 2010-12-02 16:53:38

1

听起来像是你有fopen() URL wrappers disabledallow_url_fopen = off

您需要使用类似cURL的内容下载它,然后在其上运行list($width, $height) = getimagesize()

0

如果未启用卷曲,您可以在本地使用套接字和HTTP请求仍然复制图像 - 你也可以用这个来检查文件大小(Content-Length头),以确保您的脚本不能下载海量的文件(有人试图通过这个XD DOS DOS我的网站)