PHPのpathinfo()
関数をUTF-8であることがわかっているファイル名に使用すると、特殊文字の前。ファイル名がUTF-8の場合、PHPのpathinfo()に正しいファイル名を返します。
例:
pathinfo('aä.pdf')
リターン:私は期待していたものを、非常にされていない
Array
(
[dirname] => [the dir]
[basename] => a.pdf
[extension] => pdf
[filename] => a
)
:
Array
(
[dirname] => [the dir]
[basename] => aä.pdf
[extension] => pdf
[filename] => aä
)
罰金とダンディですが、pathinfo('äa.pdf')
戻ります。さらに悪い場合は、pathinfo('ä.pdf')
が返されます。
Array
(
[dirname] => [the dir]
[basename] => .pdf
[extension] => pdf
[filename] =>
)
なぜこれはですか?これは私がテストしたすべてのアクセント記号付きの文字になります。
ほとんどのコアPHP関数は、ISO-8859-1(Latin-1の)以外に設定します。実際の選択肢は、マルチバイト文字セットセーフ機能( 'mb_string'関数)を使用して自分で関数を再実装することだけです。 – ircmaxell
PHPのどのバージョンを実行していますか? – ajreal
@ajrealそれはDebian lennyのPHP 5.2.6-1 + lenny9です – Zsub