Comment obtenir l'extension d'un fichier en PHP ? Méthodes fiables et pièges à éviter
Bonjour à tous ! Je suis un développeur PHP débutant et j'ai rencontré une tâche apparemment simple : je dois obtenir l'extension d'un fichier à partir de son nom. J'ai une variable, par exemple, `$filename = "document.pdf"` ou `$path = "/var/www/uploads/image.jpg"`. Je dois extraire "pdf" ou "jpg".
J'ai essayé la méthode la plus simple — explode avec le point :
```php
$filename = "document.pdf";
$parts = explode('.', $filename);
$ext = end($parts);
echo $ext; // pdf
```
Mais des problèmes sont immédiatement apparus. Premièrement, que faire si le nom du fichier contient plusieurs points, par exemple, `my.file.name.txt` ? Mon code renverra "txt", ce qui semble correct, mais peut-être que ce n'est pas ce qu'il faut ? Deuxièmement, que faire s'il s'agit d'un chemin complet et non d'un simple nom ? Par exemple, `/home/user/file.tar.gz` — explode découpera tout par les slashes et les points, et le résultat pourrait être inattendu. Troisièmement, que faire avec les fichiers sans extension, comme `Makefile` ou `.htaccess` ? Mon code renverra "htaccess", mais ce n'est pas une extension au sens classique.
J'ai entendu dire qu'il existe une fonction intégrée