2011-03-11 220 views
1

我试图在使用它之前找到图像的图像/像素大小。我看到以下警告图像。 Warning: getimagesize(http://farm4.hv-static.flickr.com/3052/2330936325_ea1ddf9e7d_m.jpg): failed to open stream: Connection timed out
任何想法如何处理这个?我查了一下手册,但没有找到任何选项。如何处理getimagesize中的超时()

回答

0

如果检索失败,getimagesize返回FALSE。 您可以禁用警告输出,如果你不想被看到他们

error_reporting(0); 
+0

很好,我的组织不会允许我使用的error_reporting(0) – Kumar 2011-03-11 11:26:28

+0

之前,然后坚持一个'ob_start()',和一个'之后的ob_end_clean(),这将吞下输出缓冲区中的错误,然后丢弃它。如果有的话,从客户体验的角度来看,阻止您使用'error_reporting(0)'将会是一件糟糕的事情,在我看来 - 用户不喜欢会破坏事情的错误。 – 2011-03-11 13:12:45

0

由于its manual page says

如果访问文件名图像 不可能的,或者如果它不是一个有效的 图片,getimagesize()将 生成级别的错误 E_WARNING
在读取错误时, getimagesize()将生成级别的错误E_NOTICE

没有太多可以做的是,除了确保不显示给用户的错误消息。


这可以改变display_errors指令:

  • 在php.ini文件中,对所有网页(好主意:它永远不会很大,显示在生产服务器上的错误)
  • 或在脚本的开头使用ini_set('display_errors', 'off');


或者使用@ operator,沉默的错误:

$result = @getimagesize(...); 

注:这通常不是个很好的主意:你会完全松动迹象表明发生错误!
最好是不显示的错误,但仍然有它记录...

+0

似乎没有出路,我将不得不使用@ – Kumar 2011-03-12 18:07:48