Php getimagesize无限期挂起

Php getimagesize无限期挂起,php,php-5.5,getimagesize,Php,Php 5.5,Getimagesize,我所在的服务器最近升级了,PHP从5.2升级到了5.5。我有一个使用getimagesize()的脚本,它在5.2上运行良好,但现在函数无限期地挂起在5.5上。我没有得到错误代码,没有返回值false,也没有返回值。根据周围的一些其他帖子,我检查了一些“标准”的东西: 在php环境中,allow\u url\u fopen设置为“on” 我使用的是以https://开头,以.png结尾的绝对文件路径 文件存在 即使设置了ini\u('display\u errors',1)和error\u r

我所在的服务器最近升级了,PHP从5.2升级到了5.5。我有一个使用
getimagesize()
的脚本,它在5.2上运行良好,但现在函数无限期地挂起在5.5上。我没有得到错误代码,没有返回值
false
,也没有返回值。根据周围的一些其他帖子,我检查了一些“标准”的东西:

  • 在php环境中,allow\u url\u fopen设置为“on”
  • 我使用的是以https://开头,以
    .png
    结尾的绝对文件路径
  • 文件存在
  • 即使设置了
    ini\u('display\u errors',1)
    error\u reporting(E\u ALL)
    ,也不会显示错误消息

我曾尝试使用Chrome、Firefox和CLI测试该功能,但没有任何效果。还有什么我可以检查的吗?

当使用带有
getimagesize()
函数的绝对文件路径时,请确保绝对文件路径是绝对服务器文件路径,而不仅仅是浏览器URI栏中显示的域、TLD和文件路径

这同样适用于在以下情况下使用绝对文件路径:

包括

scandir()

rmdir()

unlink()


和许多其他PHP函数。

当您尝试使用服务器文件路径时会发生什么?哇,我实际上得到了返回的信息!为什么服务器文件路径有效,而url无效,即使我的图像与脚本位于同一文件夹中?啊。好。很高兴这对你有用。当我读到你上面的问题时,我有一种预感,那可能就是(看似无害的)事情。我认为一个很好的经验法则是:无论何时使用带有php函数的文件路径,都要选择绝对文件路径而不是相对文件路径——如果选择绝对文件路径,请确保它是绝对服务器文件路径。(请参阅下面的答案…)据我所知,PHP文档中没有任何内容可以指示所需的文件路径类型。为什么像这样的函数在旧版本的PHP中使用URI?我唯一能想到的是——这是我推测的,而不是给出一个权威的答案——早期版本的PHP没有那么正式的要求(即,该函数使用任何一种类型的文件路径)——这些要求后来被收紧了。