basename関数はパスからディレクトリ情報を削除してベース名(「test.txt」など)を取得するための関数ですが、PHP5(使用バージョン:PHP 5.3.1)ではパスに日本語が含まれていると失敗します。
<?php $a = "/dir/テスト.txt"; echo basename($a); ?>
この現象はPHP6では修正されているようですが、今すぐ対処する場合は、次のようなユーザー定義関数を作る方法があります。
<?php $a = "/dir/テスト.txt"; echo my_basename($a); function my_basename($a) { $temp = mb_substr(mb_strrchr($a, "/"), 1); return $temp; } ?>
mb_strrchr関数は、パスに含まれる最後の「/」以降の文字列を取得し、mb_substr関数では先頭の1文字(/)を削除しています。