私は自分のコンピューターにこのコードを持っており、完全に正常に動作しますが、他の誰かが別の環境で実行しようとすると、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;
}
}
2行のコメントを外す$theFile
と、すべてが画面に正常に出力され、それらはすべて有効なURLですが、単なる束です
thisimage2.GIF
thatimage2.GIF
anotherimage2.GIF
...
それらはすべて 2.GIF で終わりますが、12.GIF まで 3、4、5、6 を持つべきものはたくさんありますが、getimagesize() で true を返さないため、$i を増やすことはありません。繰り返しますが、コメントを外すecho $theFile . "<br />";
と、画像への有効な URL が出力され、他の人がブラウザのアドレス バーに貼り付けて、画像を問題なく表示できます。
私はphp 5.4.17を実行していますが、まったく同じコードがうまく機能します。他のマシンは php 5.4.7 を実行しており、正しく動作していません。getimagesize() の 2 つのバージョンの違いを調べようとしましたが、何も見つかりませんでした。
編集:動作していないマシンで getimagesize() を「@」なしで実行すると、次の警告が表示されます。Warning: getimagesize(): Unable to find the wrapper “https” - did you forget to enable it when you configured PHP?