2010-12-02 43 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我的網站)