ファイル名がUTF-8の場合、PHP pathinfo()が正しいファイル名を返すようにする 質問する

ファイル名がUTF-8の場合、PHP pathinfo()が正しいファイル名を返すようにする 質問する

UTF-8 であることがわかっているファイル名に対してPHP のpathinfo()関数を使用する場合、特殊文字の前に「通常の」文字がない限り、正しい値が返されません。

例:
pathinfo('aä.pdf')戻り値:

Array
(
[dirname] => [the dir]
[basename] => aä.pdf
[extension] => pdf
[filename] => aä
)  

これは問題ありませんが、次のようなpathinfo('äa.pdf')結果が返されます。

Array
(
[dirname] => [the dir]
[basename] => a.pdf
[extension] => pdf
[filename] => a
)  

これは私が期待していたものとはまったく違います。さらに悪いことに、次pathinfo('ä.pdf')の結果が返されます。

Array
(
[dirname] => [the dir]
[basename] => .pdf
[extension] => pdf
[filename] => 
)  

なぜこのようなことが起こるのでしょうか? これは私がテストしたすべてのアクセント付き文字に当てはまります。

ベストアンサー1

使用前のパス情報

setlocale(LC_ALL,'en_US.UTF-8');
pathinfo($OriginalName, PATHINFO_FILENAME);
pathinfo($OriginalName, PATHINFO_BASENAME);

おすすめ記事