web-dev-qa-db-fra.com

Obtenir l'extension du nom de fichier comme variable

Duplicate possible:
Comment extraire une extension de fichier en PHP?

J'ai une variable $filename="filename.ext" ou $filename="filena.m.e.ext" ou plus etc. Comment puis-je extraire l'extension (ici ext) de la variable/chaîne? La variable peut changer ou peut avoir plus d'un point .. Dans ce cas, je veux obtenir la partie après le dernier point ..

21
blasteralfred Ψ

voir le répondre :

$ext = pathinfo($filename, PATHINFO_EXTENSION);
58
Haim Evgi

vous pouvez définir une fonction comme celle-ci:

function get_file_extension($filename)
{
    /*
     * "." for extension should be available and not be the first character
     * so position should not be false or 0.
     */
    $lastDotPos = strrpos($fileName, '.');
    if ( !$lastDotPos ) return false;
    return substr($fileName, $lastDotPos+1);
}

ou vous pouvez utiliser le Spl_FileInfo object intégré à PHP

4
farzad

Vous pouvez utiliser l'interrogation de chemin d'accès.

$info = pathinfo($file);

$info['extension']

contient l'extension

4
BugFinder

Vous voulez utiliser une expression régulière:

preg_match('/\.([^\.]+)$/', $filename);

Vous pouvez le tester ici pour voir s’il vous donne le résultat que vous souhaitez, compte tenu de vos commentaires.

3
kinakuta

Il y a plusieurs façons de le faire, par exemple avec explode () ou avec un preg_match et autres.

Mais la façon dont je le fais est avec pathinfo :

$path_info = pathinfo($filename);

echo $path_info['extension'], "\n";
2
stefgosselin

Vous pouvez exploser la chaîne en utilisant., Puis prendre le dernier élément du tableau:

$filename = "file.m.e.ext";
$filenameitems = explode(".", $filename);

echo $filenameitems[count($filenameitems) - 1]; // .ext
// or echo $filenameitem[-1];
0
Scott Berrevoets