我的计算机上有这段代码,它运行得非常好,但是当其他人试图在不同的环境中运行它getimagesize()
时,由于某种原因每次都返回 false (应该返回 true 很多)。任何想法为什么这段代码会在不同的环境中运行完全不同?
$i = 2;
while ($i != 0){
$theFile = "url/to/images/" . $image . $i . ".GIF";
//echo $theFile . "<br />";
if ($imageSize = @getimagesize($theFile)){
//echo "added...<br />";
$theRow .= "<a href='" . $theFile . "' rel='lightbox[" . $image . "]'></a>";
$i++;
}else{
$i = 0;
}
}
如果我取消注释掉这两行,所有$theFile
的都打印到屏幕上,它们都是有效的 URL,但它只是一堆
thisimage2.GIF
thatimage2.GIF
anotherimage2.GIF
...
它们都以 2.GIF 结尾,但有许多应该有 3、4、5、6 一直到 12.GIF,但它永远不会增加 $i,因为它永远不会用 getimagesize() 返回 true。同样,当我取消注释时,echo $theFile . "<br />";
它会打印有效的 URL 到其他人可以粘贴到浏览器地址栏中的图像并查看图像就好了。
我正在运行 php 5.4.17,完全相同的代码对我来说效果很好。另一台机器正在运行 php 5.4.7 并且无法正常工作。我试图查找 getimagesize() 的两个版本之间的任何差异,但找不到任何东西。
编辑:当在它不工作的机器上的 getimagesize() 上没有“@”运行时,它会给出以下警告:Warning: getimagesize(): Unable to find the wrapper “https” - did you forget to enable it when you configured PHP?