読者です 読者をやめる 読者になる 読者になる

日本語(マルチバイト)が含まれるファイル名のbasename()

日本語(マルチバイト)が含まれているときにbasename()すると先頭の日本語を取り除いてしまうようだ(PHP 5.2.6 on apache 2.0.63)。

$s = basename('日本語test.txt'); // $s = 'test.txt'
$s = basename('日本語testです.txt'); // $s = 'testです.txt'

http://ml.php.gr.jp/pipermail/php-users/2008-April/033994.html

この辺りのスレッドを読む限り、internal_encodingの問題のようにも見えるが、実際のところ、解決していないと思われる(PHP6での修正待ちか)。