はまったのでメモ
ファイル名をとれる関数 basename を使って
$path = "/var/www/upload/日本語ファイル.txt";
echo basename($path);
// .txt
日本語ファイル.txtが出てきて欲しいのに、日本語部分が消えてしまいました
公式マニュアルの出番です
http://php.net/manual/ja/function.basename.php
ロケールに依存するらしい..
いまのロケールを見てみます
echo setlocale(LC_ALL, 0);
// C
Apacheのロケール、Cを引き継いでるっぽいです
setlocale(LC_ALL, 'ja_JP.UTF-8');
$path = '/var/www/upload/日本語ファイル.txt';
echo basename($path);
//日本語ファイル.txt'
で取れました
Apacheの設定変えてもいいかもしれません