如果你使用 freebsd 的 ports 安裝 mod_PHP4,那麼在使用 getimagesize 判斷 SWF 格式時,可能會回傳 (int) 0。這個問題不是 getimagesize 的錯,兇手是 zlib :p
在 這裡 其實已經提供了解法,不過愚笨如我,碰到了這個問題兩次,兩次都手忙腳亂地花了一些時間找答案。為了怕第三次,還是把詳細作法說明一下好了:
在 ports 裡安裝 www/mod_php4 預設是乾乾淨淨,不加什麼選項的,得再用 lang/php4-extensions 把自己想要的 extension 加進去。如果你已經這樣做過了,那麼首先編緝 /var/db/ports/mod_php4/options, 新增一行:
WITH_ZLIB=true
然後,修改 /usr/local/etc/php/extensions.ini,把有 zlib.so 的行mark起來:
# extension=zlib.so
最後,重編 www/mod_php4:
cd /usr/ports/www/mod_php4
make clean all deinstall reinstall
那麼,在重新啟動 apache之後,應該就好了。