2010-09-30 60 views
0

在服務器中有很多圖片,他們的圖片都有空間名稱,例如:home 3.png,my new car.jpg。 我需要獲取所有圖像大小。 爲什麼getimagesize()顯示這些圖像的錯誤?php,getimagesize

錯誤:

Warning: getimagesize(http://127.0.0.1/img 1.jpg) [function.getimagesize]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found... 

如果我運行畫面:http://127.0.0.1/img 1.JPG瀏覽器都好(所以鏈接好)。

全碼:

<?php 
require_once('simple_html_dom.php'); 

$string = str_get_html('some text some text <img src = "http://127.0.0.1/img 1.jpg" /> text .... '); 

foreach($string->find('img') as $e) 
    $img[] = $e->src; 

$img_1 = getimagesize($img[0]); 
print_r($img_1); 
?> 
+1

請顯示您使用的確切代碼。另外,你確定在這裏使用'http://'包裝器是否合適?您知道使用絕對文件系統路徑訪問文件的可能性(更快)嗎? – 2010-09-30 20:03:16

+0

執行該腳本的服務器是否與映像位於同一臺服務器上運行?否則,出現此錯誤的原因可能是您通過127.0.0.1訪問本地服務器,但服務器位於其他位置,無法訪問您的服務器。 – poke 2010-09-30 20:11:01

+0

我無法想象一個單獨的實例不應該像這樣引用loopback。 – Incognito 2010-09-30 20:40:07

回答

1

你應該文件,而不是網址。

+0

使用URL是完全正確的。請參閱手冊中的示例3:http://php.net/manual/en/function.getimagesize.php – poke 2010-09-30 20:12:17

+0

@poke NOT'http:// 127.0.0.1' one – 2010-09-30 20:13:16

+0

Col. Shrapnel>什麼? – user319854 2010-09-30 20:15:00

0

基於我的評論:

確保運行PHP腳本的服務器到文件實際訪問。在這種情況下,當您嘗試從127.0.0.1獲取圖像時,php服務器必須與圖像所在的服務器相同。

如果您試圖從遠程服務器上運行它,它當然不起作用。當您在瀏覽器中打開路徑時,您正在訪問本地服務器(在您自己的計算機上),但外部服務器將無法以這種方式訪問​​它。如果它位於您的網絡中,請改用您的真實IP或主機名稱;如果它不在您的網絡中,則必須使您的本地服務器公開可用,或者僅將圖像移動到其他地方。