Accueil > php > recuperer-extension-fichier-php

{ Récupérer l'extension d'un fichier }

Introduction

Alors comme ça vous aimeriez récupérer l'extension d'un ou plusieurs fichiers ? Mmm je vois, ok, pas de problème j'ai ce qu'il vous faut ^^

Le principe

Pour y parvenir on va utiliser une fonction qui s'appelle "pathinfo" et qui est gentillement mis à disposition par PHP. Enfait c'est cette fonction qui fera le boulot, donc on ne se fatigue pas on récupère juste l'extension dans une variable et on la retourne, easy non ?

L'avantage ? Ben plus besoin de faire un substring, uzw...

La fonction

<?php
	function get_file_ext($file)
	{
		$ext = pathinfo($file, PATHINFO_EXTENSION);
		return $ext;
	}
?>

Appel et utilisation

Perso j'ai l'habitude de placer toutes ces petites fonctions si pratiques dans un seul et même fichier que je nomme fonctions.php si vous voulez tout savoir.
Donc admettons que vous fassiez comme moi il faudra quand même joindre se fichier dans la page concernée afin qu'on puisse accéder à nos fonctions. Placez le code suivant tout en haut de votre page :

<?php	require_once 'fonctions.php';	?>

Puis à l'endroit ou vous aimeriez récupérez une extension :

<?php	
$fichier = 'index.php';
get_file_ext($fichier);	?>
// Retourne php

Bien sur rien ne vous empêche de mettre la fonction et l'appel sur la même page, personnellement j'externalise un maximum les scripts, ça permet de les réutiliser sur d'autres pages sans avoir à recopier toute la fonction à chaque fois.

Méthodes alternatives

Voici deux méthodes souvent utilisé (généralement par ceux qui ne connaissent pas "pathinfo" ^^), mais qui donne le même résultat.

$ext = substr($fichier, strrpos($fichier, '.') + 1);
// Affiche php
$ext = substr(strrchr($fichier, '.'), 1); // Affiche php

extension ou .extension ?

Comment ça lesquels affichent le point et lesquels pas ? Bon voilà le détail pour chacune des solutions.

sans le point :

$ext = substr($fichier, strrpos($fichier, '.') + 1);
// Affichera php
get_file_ext($fichier); // Affichera php

avec le point :

$ext = substr($fichier, strrpos($fichier, '.') + 0);
// Affichera .php
$ext = strrchr($fichier, '.'); // Affichera .php

Enjoy !