この記事では、PHP を使用してファイルのサフィックス名を取得するいくつかの方法をまとめています。これは非常に簡単で実用的です。必要な場合は参考にしてください。たとえば、画像ファイル、jpg や gif などです。
方法は2つありますまず、$imgが画像ファイル名である場合$img=12345.gif; $img_ext = substr($img, strrpos($img, '.'));二番目に、php配列を使用し、まずファイル名の文字列を配列に読み込みます
$ext2=explode(".",$img); $count=count($ext2); $count2=$count-1; $file_name = $urlstr .'.'.$ext2[$count2];//得到后缀并重新定义新的文件名$file_nameまた、他の友達のまとめ 出てきた方法:
第1种方法: function get_extension($file) { substr(strrchr($file, '.'), 1); } 第2种方法: function get_extension($file) { return substr($file, strrpos($file, '.')+1); } 第3种方法: function get_extension($file) { return end(explode('.', $file)); } 第4种方法: function get_extension($file) { $info = pathinfo($file); return $info['extension']; } 第5种方法: function get_extension($file) { return pathinfo($file, PATHINFO_EXTENSION); }上記の方法をざっと見たところ、すべてうまくいくようで、特に方法 1 と 2 は、私が知らなかった前から使用していました。 pathinfo には 2 番目のパラメータがあります。しかし、よく考えてみると、最初の 4 つの方法にはさまざまな欠点があります。ファイル拡張子を完全に正しく取得するには、次の 3 つの特殊な状況に対処できなければなりません。
$file_path = pathinfo('/www/htdocs/your_image.jpg'); echo "$file_path ['dirname']\n"; echo "$file_path ['basename']\n"; echo "$file_path ['extension']\n"; echo "$file_path ['filename']\n"; // only in PHP 5.2+最大 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 です。現在のファイルの親ディレクトリを取得するための PHP 実装のメソッドの概要
クライアントとサーバーの IP カプセル化クラスを取得するための PHP 実装
WeChat 赤い封筒を実装するためのアルゴリズムPHP で
以上がPHPでファイル拡張子を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。