ホームページ >バックエンド開発 >PHPチュートリアル >PHPでファイル拡張子を取得するいくつかの方法

PHPでファイル拡張子を取得するいくつかの方法

WBOY
WBOYオリジナル
2016-07-25 09:04:061005ブラウズ
php でファイル拡張子を取得するにはいくつかの方法があります。必要な場合はそれらを参照してください。

方法 1:

リーリー

方法 2:

リーリー

方法 3:

リーリー

方法 4:

リーリー

方法 5:

リーリー

上記の方法はすべて機能するようですが、特に方法 1 と 2 が効果的です。 ただし、pathinfo の 2 番目のパラメータを理解していれば、上記の方法に疑問を持つでしょう。 よく考えてみると、最初の 4 つの方法にはすべてさまざまな欠点があります。 ファイル拡張子を完全に正しく取得するには、次の 3 つの特殊な状況に対処できなければなりません。

ファイル拡張子なし

パスには文字が含まれています。 (/home/test.d/test.txt など) パスには文字 . が含まれていますが、ファイルには拡張子がありません。 /home/test.d/test など 明らかに、1 と 2 は 3 番目の状況を処理できず、3 は最初と 3 番目の状況を正しく処理できません。 4 は正しく処理されますが、拡張子が存在しない場合は警告が発行されます。方法 5 のみが最も正しい方法です。ちなみに、 pathinfo メソッドを見てください。

公式サイトの紹介は以下の通りです

リーリー

最大 4 つの要素を含む配列が返されますが、常に 4 つあるとは限りません。たとえば、拡張子がない場合、拡張子要素も存在しないため、4 番目のメソッドで警告が検出されます。 ただし、phpinfo は 2 番目のパラメータもサポートしています。定数を渡して、返されるデータの特定の部分を指定できます。 PATHINFO_DIRNAME - ディレクトリ PATHINFO_BASENAME - ファイル名 (拡張子を含む) PATHINFO_EXTENSION - 拡張子 PATHINFO_FILENAME - ファイル名 (拡張子なし、PHP>5.2) これら 4 つの定数の値はそれぞれ 1、2、4、8 です。最初は OR 演算で複数の値を指定できると考えました。 pathinfo($file, PATHINFO_EXTENSION | PATHINFO_FILENAME); 後で、これが機能しないことがわかりました。これは、いくつかの OR 定数のうちの最小のもののみを返します。 つまり、4 つのフラグ ビットの最小ビットは定数 1 です。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。