ファイル名をデータベースに登録する時に、日本語表記のファイル名だけ、ファイル名の部分が無くなり、拡張子のみになってしまいました。
下記がコードの抜粋になります。
$path = 'C://test.com/日本語.php';
$filename = basename($path);
//以後、データベースの登録
basenameというファイル名だけを抽出する関数の不具合らしいです。
解決する方法は、下記のように上部にsetlocale(LC_ALL, ‘ja_JP.UTF-8’);というコードを加えます。
setlocale(LC_ALL, 'ja_JP.UTF-8');
$path = 'C://test.com/日本語.php';
$filename = basename($path);
//以後、データベースの登録
setlocaleはPHPの環境を国の情報(文字、日時など)を変更するものです。上記のコードでは日本、UTF-8の環境に変更しています。
詳しくは下記の公式サイトで確認して下さい。
コメント