特に理由はないけどWindowsで使っていたphpを5.3にしてみたら問題が...。
ほとんどの問題は非推奨になった関数の使用が問題だったので、それは簡単に修正できたけど、解決できなかった問題が...。
Windows XPで...
<?php echo filemtime('表.txt');
というスクリプトを書いて、php 5.3.0と5.2.11で実行すると... (カレントディレクトリに '表.txt' は存在する)
C:\>c:\php-5.3.0\php.exe test.php PHP Warning: filemtime(): stat failed for 表.txt in W:\web\test.php on line 2 C:\>c:\php-5.2.11\php.exe test.php 1255683350
こんな感じで 5.3.0 だと 0x5c の文字が入ってるファイルを読み書きできなくて微妙に困り中。
file_get_contents() などもエラーになるので読めなかったり。
追記
5.3.0って書いてしまったけど、今確認しみると4種類ありますな...
VC6とVC9、Thread SafeとNon Thread Safeの違いで4種類。すべて試してみると...
C:\test>php-5.3.0-nts-Win32-VC6-x86\php test.php 1255683350 C:\test>php-5.3.0-nts-Win32-VC9-x86\php test.php 1255683350 C:\test>php-5.3.0-Win32-VC9-x86\php test.php PHP Warning: filemtime(): stat failed for 表.txt in C:\test\test.php on line 2 C:\test>php-5.3.0-Win32-VC6-x86\php test.php Warning: filemtime(): stat failed for 表.txt in C:\test\test.php on line 2
Non Thread Safeだと動くみたい...。
追記 2009-10-22
fopen() や is_writable() はダメみたい。
ファイルが書き込み可能かどうかを確かめる方法がないなー...。
filemtime() は stat() を呼び出してるみたいなので stat() も動きますな。