twitter facebook

php で 日本語ファイル名を glob した場合ファイル名が切れる問題

PHPでファイル一覧を取得する関数 glob で日本語ファイルを取得した時に起きた問題として。

ファイル名の日本語部分が消えてしまう。

以下みたいにして出力すると
$ret = glob("/var/www/html/hogehoge.com/*" );
print_r($ret) ;
-20201113.pdf の日本語部分が消えてしまいます
Array
(
    [0] => CCI20160702_0003.jpg
    [1] => sergei2.jpg
    [2] => -20201113.pdf
)

対処法

以下をその前につける!
setlocale(LC_ALL, 'ja_JP.UTF-8');
すると
以下のようにすると日本語もきっちり取れます
setlocale(LC_ALL, 'ja_JP.UTF-8');
$ret = glob("/var/www/html/hogehoge.com/*" );
print_r($ret) ;
Array
(
    [0] => CCI20160702_0003.jpg
    [1] => sergei2.jpg
    [2] => ほげほげ-20201113.pdf
)
AUTHOR
@ぱ
最終更新日 2021/11/08
FAVORITE good stock
LINK TAG
記法を見る