ホームページ  >  記事  >  バックエンド開発  >  ファイル名から実際のファイル拡張子を抽出するにはどうすればよいですか?

ファイル名から実際のファイル拡張子を抽出するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-02 03:22:02482ブラウズ

How Can You Extract the True File Extension from a Filename?

実際のファイル拡張子の決定

多くの開発者は、ファイル名からファイル拡張子を抽出する必要性に遭遇します。ファイル名の文字列を単純に解析し、ピリオド (.) 以降を切り捨てるソリューションを採用するのが一般的ですが、このアプローチでは、特にファイル名に複数の拡張子が含まれている場合、不正確な結果が生じる可能性があります。

たとえば、次のような場合です。スクリプトは拡張子を適切に削除できない可能性があります:

  • /.[^.] $/
  • substr($filename, 0, (strlen ($filename)) - (strlen (strrchr) ($filename,'.'))))

これらのスクリプトは両方とも、拡張子を分離するために区切り文字 ('.') に依存します。ただし、ファイル名に「This.is example of somestring」のような文字列が含まれている場合は、最初のピリオドのみが削除され、目的の結果である「somestring」の代わりに「This」が生成されます。正確な拡張子削除のための pathinfo()

このような不規則性を回避するには、PHP が提供する pathinfo() 関数を利用することをお勧めします。この関数は、ファイル名や拡張子など、ファイル パスに関するさまざまな情報を取得するための堅牢な方法を提供します。

次の例を考えてみましょう。

2 番目のパラメータとして PATHINFO_FILENAME を指定すると、pathinfo () は、拡張子を含む、指定されたパスのファイル名部分を分離します。上で示したように、ファイル名に複数の拡張子が含まれている場合、 pathinfo() は実際の拡張子を正しく抽出します。

以上がファイル名から実際のファイル拡張子を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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