2008-11-18
PHP ファイル名の文字列から拡張子を取得する
あるソースコードを見ていたら、拡張子の取得部分が以下のように書かれていました。
方法1
<?php $file_nm = $_FILES['upfile']['name']; $tmp_ary = explode('.', $file_nm); $extension = $tmp_ary[count($tmp_ary)-1]; ?>
処理手順を説明すると以下のような感じでしょうか。
正規表現を用いない、ある意味スマートな方法といえるのかもしれません。ただパッと見の印象としてはわかりづらいかと思います。
方法2
で、もうちょっと簡単に書けないものかと調べてみました。以下PHPマニュアルより引用。
mixed pathinfo ( string $path [, int $options ] )返り値
以下の要素を含む連想配列を返します。 dirname (ディレクトリ名)、basename (ファイル名) そして、もし存在すれば extension (拡張子)。
options を使用すると、 すべての要素を選択しない限りこの関数の返り値は文字列となります。
PHP: pathinfo - Manual
pathinfo()関数と、第二引数のオプションを使用して以下のように書くことができます。
<?php $file_nm = $_FILES['upfile']['name']; $extension = pathinfo($file_nm, PATHINFO_EXTENSION); ?>
ついでに
余談ではありますが、「拡張子」の英字スペルは「extension」です。元ソースでは変数名が「$extention」と書かれていて、なんとなく悲しくなりました。ちょっとしたことでも、あるべき正しい姿を求めていきたいものです。
トラックバック - http://d.hatena.ne.jp/deeeki/20081118/pathinfoext
リンク元
- 998 http://www.google.co.jp/search?q=php+拡張子+取得&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 865 http://www.google.co.jp/search?hl=ja&q=php+拡張子+取得&btnG=Google+検索&lr=&aq=2&oq=php かくちょ
- 640 http://www.google.co.jp/url?sa=t&rct=j&q=php ファイルの拡張子&source=web&cd=1&ved=0CCYQFjAA&url=http://d.hatena.ne.jp/deeeki/20081118/pathinfoext&ei=iS6FTs6mHfHRmAXMxdAY&usg=AFQjCNEw_A3
- 543 http://www.google.co.jp/search?q=php+ファイル拡張子 関数&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_jaJP241JP241
- 539 http://www.google.co.jp/search?hl=ja&source=hp&q=PHP+拡張子取得&btnG=Google+検索&lr=&aq=f&oq=
- 530 http://www.google.co.jp/url?sa=t&rct=j&q=php 拡張子 取り除く&source=web&cd=2&ved=0CC0QFjAB&url=http://d.hatena.ne.jp/deeeki/20081118/pathinfoext&ei=AwSETpGaI6j2mAXU9uxP&usg=AFQjCNEw_A3Cy_wdg
- 387 http://www.google.co.jp/search?hl=ja&q=php+ファイル名+拡張子 取得&btnG=Google+検索&lr=&aq=1&oq=
- 373 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CBkQFjAA&url=http://d.hatena.ne.jp/deeeki/20081118/pathinfoext&rct=j&q=_files 拡張子&ei=d7j4TKvaMpGCvgPtv8SwCQ&usg=AFQjCNEw_A3Cy_wdgauqfUEBeh8KrnyjAw
- 364 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CDEQFjAA&url=http://d.hatena.ne.jp/deeeki/20081118/pathinfoext&ei=QecxT-f6GYyamQW06NnQBQ&usg=AFQjCNEw_A3Cy_wdgauqfUEBeh8KrnyjAw&sig2=8eBuWYnlV7lcB1svEKY_ew
- 283 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja-JP-mac:official&hs=77Q&q=php+ファイル 拡張し&btnG=検索&lr=lang_ja




