PHPプログラムに関する各種メモ書き

PHPでファイル名からパス名、ファイル名、拡張子を調べる。また拡張子を取り除く

意外と何度も調べてしまうのでメモ

● ファイル名から拡張子を調べる

echo pathinfo('./aaa/bbb/ccc/ddd.jpg', PATHINFO_EXTENSION);

結果

jpg

● ファイル名からパス名(ディレクトリ名)を調べる

echo pathinfo('./aaa/bbb/ccc/ddd.jpg', PATHINFO_DIRNAME);

結果

./aaa/bbb/ccc

● パス・ファイル名からパス名(ディレクトリ名)を取り除いたファイル名を調べる

echo pathinfo('./aaa/bbb/ccc/ddd.jpg', PATHINFO_BASENAME);

結果

ddd.jpg

● ファイル名から「ディレクトリ名・拡張子」を取り除いたファイル名を調べる

echo pathinfo('./aaa/bbb/ccc/ddd.jpg', PATHINFO_FILENAME);

結果

ddd

● pathinfo 関数(ファイル名からパス名、ファイル名、拡張子を調べる関数)

$p = pathinfo('./aaa/bbb/ccc/ddd.jpg');
print_r($p);

// 実行結果

Array
(
    [dirname] => ./aaa/bbb/ccc
    [basename] => ddd.jpg
    [extension] => jpg
    [filename] => ddd
)

ただし、拡張子がないときは $p['extension'] がセットされて帰ってこないので注意。

● PHPでファイル名から拡張子を取り除くには

● 1. 拡張子がわかっている場合

basename ("ファイル名","サフィックス");

とします。

$test=basename ( "hogehoge.jpg",".jpg" );

● 2.拡張子がわかってない場合

関数を定義するのがいいでしょう(か?)

function _delete_extention( $string='' ){
$p = pathinfo($string);
return basename ( $string, ".{$p['extension']}" );
}

関連エントリー

No.528
04/03 17:01

edit

ファイル