2010-09-30 64 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或主机名称;如果它不在您的网络中,则必须使您的本地服务器公开可用,或者仅将图像移动到其他地方。