PHP pathinfo 日本語ファイル名が含まれた場合

2020-06-09PHP

PHP pathinfo 日本語ファイル名が含まれた場合

特定のディレクトリのファイル情報を読み込む場合pathinfoを使い、ファイル情報を取得します。
しかし、ファイル名に日本語名が含まれている場合、正常に取得ができません。

なにができないかと言うと。

[ファイル]
会館利用案内2020.4.1.pdf

こういうファイルがあった場合、pathinfo
以下の通りになります。

array(4) {
	["dirname"]=> string(10) "./doc/unei"
	["basename"]=> string(12) "2020.4.1.pdf"
	["extension"]=> string(3) "pdf"
	["filename"]=> string(8) "2020.4.1"
}

綺麗に日本語部分が抜けて出力されます。

解決策として、PHPファイルの先頭に以下のおまじないを記載すれば解決できます。

	setlocale(LC_ALL, 'ja_JP.UTF-8');

以下が実行結果

array(4) {
	["dirname"]=> string(10) "./doc/unei"
	["basename"]=> string(30) "会館利用案内2020.4.1.pdf"
	["extension"]=> string(3) "pdf"
	["filename"]=> string(26) "会館利用案内2020.4.1"
}