0

これまでのところ、ファイル名がどんなに変わっていても、ファイル拡張子を取得するのに非常に優れているように見える関数を作成しました。私がネット上で出くわしたすべての方法は、でexplodeを使用するのが好きなようです。拡張子を取得しますが、ファイル名に複数の.sが含まれている場合はどうなりますか?

これが私の関数です:

$fileName = 'my.reallyAwk-ward..file--name.JPEG' ;
echo getExtension($fileName) ;

function getExtension($fileName)
{
    $ext = explode('.', strrev($fileName), 2) ;
    $ext = strtolower(strrev($ext[0])) ;
    return $ext ;
}

私はホイールを再発明していますか、それともこれをより効率的にすることができますか?

4

3 に答える 3

7
<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');

echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // since PHP 5.2.0
?>

http://php.net/manual/en/function.pathinfo.phpから

于 2012-08-05T11:50:03.477 に答える
0

これは少しきれいだと思います:

$filename = 'myfile.jpg';
$extension = substr($filename, strrpos($filename,'.') +1 )

爆発すると新しい配列が作成され、一般的にはさらに多くの「作業」があります。

于 2012-08-05T11:52:48.930 に答える
0

あなたもこのようにすることができます。

echo substr(strrchr('file.txt','.'),1);
于 2019-03-14T06:11:45.603 に答える