2012-10-31 57 views
1

我運行一個購物網站,並試圖將這個遠程gif圖像的副本保存爲我的服務器作爲jpg。PHP遠程圖像在瀏覽器中打開,但imagecreatefromgif:未能打開流:操作失敗

$i='http://www.medexsupply.com/images/RO1R910C.GIF'; 

$imagejpg = imagecreatefromgif($i); 

,並讓以下錯誤:

Warning: imagecreatefromgif(): Couldn't resolve host name in /home/xxxxx/public_html/xxxxxxx/file.php on line 46 

Warning: imagecreatefromgif(http://www.medexsupply.com/images/RO1R910C.GIF): failed to open stream: operation failed in /home/xxxxx/public_html/xxxxxxx/file.php on line 46 

上線46,代碼 $imagejpg = imagecreatefromgif($i);

我有專門的服務器有128MB內存限制PHP腳本。

allow_url_fopen處於打開狀態。

我可以修改我的服務器上的任何設置。

我可以複製成千上萬的其他遠程圖像,但不是來自其他一些網站的圖像和圖像。

有人可以幫忙。

如果您想了解更多信息,請回復。

謝謝

+1

嘗試使用已解析的IP地址代替主機名。 '2.20.242.177' = www.medexsupply.com –

+0

如果你把URL放到瀏覽器中,你會得到有效的圖像嗎?如果您嘗試這樣做,某些站點不允許圖像熱鏈接並返回錯誤。 –

+0

這可能不是一個好主意,allow_url_fopen *在 – Pete

回答

1

沒有與您的域名,這也解釋了「無法解析主機」消息DNS問題。

在我的瀏覽器中,我可以訪問您的圖片。然而,從不同的機器上,我得到:

$ dig www.medexsupply.com 

; <<>> DiG 9.7.3 <<>> www.medexsupply.com 
;; global options: +cmd 
;; connection timed out; no servers could be reached 

在這個時間點上,它可能是可能的,桑迪的原因,因爲我看到你與Rackspace公司託管在紐約,從給機上面的錯誤,我無法ping他們的名字服務器。

+0

我同意,我測試了OP的原始2行代碼,並且我讀取的圖像很好,所以這看起來很可能。 – n00dle

0

如果已啓用fopen wrappers,則可以使用URL作爲具有此函數「imagecreatefromgif」的文件名。有關如何指定list of supported URL protocols的文件名和支持的協議/包裝列表的更多詳細信息,請參閱fopen()。