1. ホーム
  2. php

[解決済み] PHPでファイルの拡張子を取得する方法を教えてください。

2022-03-19 23:27:12

質問

これは、ウェブ上のあらゆる場所で読むことができ、様々な回答がある質問です。

$ext = end(explode('.', $filename));
$ext = substr(strrchr($filename, '.'), 1);
$ext = substr($filename, strrpos($filename, '.') + 1);
$ext = preg_replace('/^.*\.([^.]+)$/D', '$1', $filename);

$exts = split("[/\\.]", $filename);
$n    = count($exts)-1;
$ext  = $exts[$n];

などです。

しかし、常に最良の方法があり、それはStack Overflowにあるはずです。

どのように解決するのですか?

他のスクリプト言語から来た人たちは、PHPではなく自分たちの言語にはそのための関数が組み込まれているので、自分たちの言語が優れていると常に思っています。

実は、存在するのですが、知っている人はほとんどいません。ミート pathinfo() :

$ext = pathinfo($filename, PATHINFO_EXTENSION);

これは高速で内蔵されています。 pathinfo() は、渡す定数によって正規のパスなど他の情報を与えることができます。

非 ASCII 文字を扱えるようにするには、まずロケールを設定する必要があることを覚えておいてください。例

setlocale(LC_ALL,'en_US.UTF-8');

また、これはファイルの内容やmime-typeを考慮せず、拡張子のみを取得することに注意してください。しかし、これはあなたが要求したものです。

最後に、これはファイルパスに対してのみ機能し、URLリソースパスに対しては機能しないことに注意してください。

楽しむ