Maison > développement back-end > tutoriel php > Comment obtenir une extension de fichier en php

Comment obtenir une extension de fichier en php

墨辰丷
Libérer: 2023-03-29 10:56:01
original
2031 Les gens l'ont consulté

Cet article résume plusieurs façons d'utiliser PHP pour obtenir le suffixe du nom d'un fichier. C'est très simple et pratique. Les amis dans le besoin peuvent s'y référer

Par exemple, le suffixe des fichiers image, jpg. ou gif, etc.

Il existe deux méthodes

Premièrement, si $img est le nom du fichier image

$img=12345.gif;
$img_ext = substr($img, strrpos($img, '.'));
Copier après la connexion

Deuxièmement, utilisez le tableau PHP, lisez d'abord la chaîne du nom de fichier dans le tableau

$ext2=explode(".",$img);
      $count=count($ext2);
      $count2=$count-1;
      $file_name  = $urlstr .'.'.$ext2[$count2];//得到后缀并重新定义新的文件名$file_name
Copier après la connexion

Vous trouverez ci-joint la méthode résumée par d'autres amis :

第1种方法:
function get_extension($file)
{
substr(strrchr($file, '.'), 1);
}
第2种方法:
function get_extension($file)
{
return substr($file, strrpos($file, '.')+1);
}
第3种方法:
function get_extension($file)
{
return end(explode('.', $file));
}
第4种方法:
function get_extension($file)
{
$info = pathinfo($file);
return $info['extension'];
}
第5种方法:
function get_extension($file)
{
return pathinfo($file, PATHINFO_EXTENSION);
}
Copier après la connexion

Après un rapide coup d'œil aux méthodes ci-dessus, elles semblent toutes fonctionner, en particulier les méthodes 1 et 2, avant je ne savais pas que pathinfo avait une seconde paramètre. Toujours utilisé. Mais si l’on y réfléchit bien, les quatre premières méthodes présentent diverses lacunes. Pour obtenir l'extension de fichier de manière complètement correcte, vous devez être capable de gérer les trois situations particulières suivantes.

  1. Aucune extension de fichier

  2. Le chemin contient des caractères., tels que /home/test.d/test.txt

  3. Le chemin contient les caractères ., mais le fichier n'a pas d'extension. Par exemple, /home/test.d/test

C'est évident : 1 et 2 ne peuvent pas gérer la troisième situation, et 3 ne peuvent pas gérer correctement la première et la troisième situations. 4 est géré correctement, mais lorsque l'extension n'est pas présente, un avertissement est émis. Seule la méthode 5 est la méthode la plus correcte. Au fait, jetez un œil à la méthode pathinfo. L'introduction sur le site officiel est la suivante :

$file_path = pathinfo('/www/htdocs/your_image.jpg');
 
echo "$file_path ['dirname']\n";
echo "$file_path ['basename']\n";
echo "$file_path ['extension']\n";
echo "$file_path ['filename']\n"; // only in PHP 5.2+
Copier après la connexion

Il renverra un tableau contenant jusqu'à quatre éléments, mais il n'y aura pas toujours être quatre. Par exemple, s'il n'y a pas d'extension, il n'y aura pas d'élément d'extension, donc l'avertissement sera trouvé dans la quatrième méthode. Mais phpinfo prend également en charge le deuxième paramètre. Vous pouvez passer une constante pour spécifier une certaine partie des données à renvoyer :

PATHINFO_DIRNAME - 目录
PATHINFO_BASENAME - 文件名(含扩展名)
PATHINFO_EXTENSION - 扩展名
PATHINFO_FILENAME - 文件名(不含扩展名,PHP>5.2)
Copier après la connexion

Les valeurs de ces quatre constantes sont 1, 2, 4, 8. Au début, je pensais pouvoir spécifier plusieurs opérations OR :
pathinfo($file, PATHINFO_EXTENSION | PATHINFO_FILENAME);
Plus tard, j'ai découvert que cela ne fonctionnait pas. renvoie la plus petite de plusieurs constantes d’opération OR. Autrement dit, le plus petit bit parmi les quatre bits d’indicateur est une constante de 1.

Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Résumé de l'implémentation PHP de l'obtention du répertoire parent du fichier actuel

Implémentation PHP de l'obtention la classe d'encapsulation IP client et serveur End

Algorithme d'implémentation des enveloppes rouges WeChat basé sur PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal