再現方法

環境

Windows XP SP2
PHP-5.2.5

ファイル構成

 test.php
 +[sample]
    foo.txt
    hoge.txt
    ソソソ
    ソソソa
    +[aソソソ]

テストコード(test.php)

<?php
$d = dir(dirname(__FILE__)."/sample");
while (false !== ($entry = $d->read())) {
	$fullpath = $d->path."/".$entry;
	$type = filetype($fullpath);
	$size = filesize($fullpath);
	printf("[%s] %s (%s)\n", $type, $entry, $size);
}
$d->close();
?>

期待する結果

 [dir] . (0)
 [dir] .. (0)
 [dir] aソソソ (0)
 [file] foo.txt (5)
 [file] hoge.txt (8)
 [file] ソソソ (3)
 [file] ソソソa (3)

実際の結果

 [dir] . (0)
 [dir] .. (0)
 [dir] aソソソ (0)
 [file] foo.txt (5)
 [file] hoge.txt (8)
 PHP Warning:  filetype(): Lstat failed for C:\<パス>/sample/ソソソ in C:\<パス>\test.php on line 5

 Warning: filetype(): Lstat failed for C:\<パス>/sample/ソソソ in C:\<パス>\test.php on line 5
 PHP Warning:  filesize(): stat failed for C:\<パス>/sample/ソソソ in C:\<パス>\test.php on line 6

 Warning: filesize(): stat failed for C:\<パス>/sample/ソソソ in C:\<パス>\test.php on line 6

 [] ソソソ ()
 [file] ソソソa (3)

問題

参照できないファイルは、隠しファイルでもありませんし、
エクスプローラから目視することもできます。
しかし、PHPからfile_get_contentsやfilesize、filetypeなどのファイルアクセス関数から参照できません。

使い方

  1. HTTPTrace-0.1.0.tar.gzを解凍
  2. HTTPTraceServer.exeを起動し「Start」を押す。
  3. sample.php実行する。
<?php
// When USE_HTRACE is setted false. htrace() and htrace_set() is ignore.
//define('USE_HTRACE', false);

require_once "htrace.php";
//htrace_set('localhost', 6007);
htrace($_SERVER);
?>