Maison  >  Article  >  développement back-end  >  Application de fonction PHP utilisant des fonctions de chaîne pour extraire les extensions de fichiers

Application de fonction PHP utilisant des fonctions de chaîne pour extraire les extensions de fichiers

青灯夜游
青灯夜游original
2021-08-18 19:06:013489parcourir

Dans l'article précédent « Application de fonction PHP : Utilisation de tableaux pour générer des extensions de fichiers », nous avons présenté deux méthodes d'utilisation de tableaux pour obtenir des extensions de fichiers. Cette fois, nous continuons à présenter la méthode d'obtention de l'extension de fichier et voyons comment utiliser la fonction de chaîne. Les amis intéressés peuvent en apprendre davantage ~

Tout d'abord, rappelons ce qui précède, nous comprenons un fichier complet Le format. peut être divisé en trois parties : le contenu avant le caractère ".", le contenu après le caractère "." et le contenu après le caractère ".".

Cette fois, nous devons encore utiliser le caractère ".".,通过它来获取文件扩展名!下面我们会给大家介绍3种利用字符串函数获取文件扩展名的方法。

首先我们来看看第一种利用字符串函数获取文件扩展名的方法

<?php
function getExtension($filename){
         $ext = strrchr($filename,&#39;.&#39;);
         return $ext;
}
$filename="dir/upload/image.gif";
echo getExtension($filename);
?>

分析一下上面的关键代码:

strrchr($filename,'.')的意思为返回字符串$filename中从字符“.”开始到字符串结尾的所有字符。因此输出结果为:

Application de fonction PHP utilisant des fonctions de chaîne pour extraire les extensions de fichiers

接下来我们看看第二种利用字符串函数获取文件扩展名的方法

<?php
function getExtension($filename){
    $pos = strrpos($filename, &#39;.&#39;);
    $ext = substr($filename, $pos);
    return $ext;
}
$filename="dir/upload/image.gif";
echo getExtension($filename);
?>

输出结果为:

Application de fonction PHP utilisant des fonctions de chaîne pour extraire les extensions de fichiers

OK,分析一下上面的关键代码:

  • 首先我们使用strrpos($filename, '.')获取到字符“.”在字符串$filename中最后一次出现的位置$pos,然后将$pos作为substr()函数的第二个参数。

  • substr($filename, $pos)会根据$pos设置的位置开始截取字符串$filename,返回从$pos开始到字符串结尾的所有字符。因此会输出“.gif”。

如果想要获取不包括字符“.”的扩展名,即返回“gif”,那么可以设置substr($filename, $pos+1),这样输出结果就为:

Application de fonction PHP utilisant des fonctions de chaîne pour extraire les extensions de fichiers

最后我们看看第三种利用字符串函数获取文件扩展名的方法

<?php
function getExtension($filename){
    $filename = strrev($filename);
    $ext = strstr($str,&#39;.&#39;,true);
    return strrev($ext);
}
$filename="dir/upload/image.gif";
echo getExtension($filename);
?>

分析一下上面的关键代码:

strstr($filename,'.',true)可以获取字符串$filename中从开头到 字符“.” 第一次出现前的所有字符,即获取 字符“.”之前的内容,输出一下看看:

Application de fonction PHP utilisant des fonctions de chaîne pour extraire les extensions de fichiers

这和我们的预期不符合,此时我想了一下,既然是获取 字符“.”之前的内容,那么就把字符串反转一下,让表示扩展名的那几个字符在字符“.”之前不久行了!

因此,先使用strrev($filename)来反转字符串$filename,再使用strstr($filename,'.',true)来获取 字符“.”之前的内容,这次输出看看结果:

Application de fonction PHP utilisant des fonctions de chaîne pour extraire les extensions de fichiers

可以了,获取到颠倒的扩展名了,调用strrev($filename) pour obtenir l'extension du fichier ! Ci-dessous, nous vous présenterons 3 méthodes d'utilisation des fonctions de chaîne pour obtenir des extensions de fichiers.

Application de fonction PHP utilisant des fonctions de chaîne pour extraire les extensions de fichiersTout d'abord, jetons un coup d'œil à la première méthode d'utilisation des fonctions de chaîne pour obtenir des extensions de fichier

rrreee

Analysez le code clé ci-dessus :

strrchr($filename,'.') signifie renvoyer tous les caractères de la chaîne $filename à partir du caractère "." jusqu'à la fin de la chaîne. Le résultat de sortie est donc :

Application de fonction PHP utilisant des fonctions de chaîne pour extraire les extensions de fichiers

🎜🎜 Examinons ensuite la deuxième méthode d'utilisation des fonctions de chaîne pour obtenir des extensions de fichier 🎜🎜rrreee🎜Le résultat de sortie est : 🎜🎜Application de fonction PHP utilisant des fonctions de chaîne pour extraire les extensions de fichiers🎜🎜OK, analysez le code clé ci-dessus : 🎜
  • 🎜Nous utilisons d'abord strrpos($filename, '.') pour obtenir la dernière fois que le caractère "." est dans la chaîne $filename La position où il apparaît est $pos, puis utilisez $pos comme deuxième paramètre de la fonction substr(). 🎜
  • 🎜substr($filename, $pos) commencera à intercepter la chaîne $filename en fonction de la position définie par $pos >, renvoie tous les caractères commençant par <code>$pos jusqu'à la fin de la chaîne. Par conséquent, ".gif" est affiché. 🎜
🎜Si vous souhaitez obtenir l'extension qui n'inclut pas le caractère ".", c'est-à-dire renvoyer "gif", alors vous pouvez définir substr ($filename, $pos +1), donc le résultat de sortie est : 🎜🎜Application de fonction PHP utilisant des fonctions de chaîne pour extraire les extensions de fichiers🎜🎜🎜Enfin, regardons la troisième méthode d'utilisation des fonctions de chaîne pour obtenir des extensions de fichier🎜🎜rrreee🎜Analysez le code clé ci-dessus : 🎜🎜🎜strstr( $filename,'.',true) peut récupérer tous les caractères du début à la première occurrence du caractère "." dans la chaîne $filename Autrement dit, récupérez le contenu avant le caractère "." et affichez-le : 🎜🎜Application de fonction PHP utilisant des fonctions de chaîne pour extraire les extensions de fichiers🎜🎜Cela ne correspond pas à nos attentes. À ce moment-là, j'y ai réfléchi. Puisque nous obtenons le content avant le caractère ".", puis inversez simplement la chaîne pour que les caractères représentant l'extension ne soient pas longtemps avant le caractère "." ! 🎜🎜Donc, utilisez d'abord strrev($filename) pour inverser la chaîne $filename, puis utilisez strstr($filename,'.',true) pour obtenir le contenu avant le caractère ".", affichez cette fois pour voir le résultat : 🎜🎜<img src="https://img.php.cn/upload/image/548/278/851/1629284294391099%20.png%20" title="1629284294391099.png" alt="Application de fonction PHP utilisant des fonctions de chaîne pour extraire les extensions de fichiers">🎜🎜Ça y est, vous avez l'extension inversée. Appelez <code>strrev($filename) pour inverser à nouveau la chaîne . De cette façon, l'extension normale est obtenue. Jetez un œil au résultat de sortie : 🎜🎜🎜🎜🎜🎜D'accord, c'est tout. Si vous voulez savoir autre chose, vous pouvez cliquer ici. → →🎜Tutoriel vidéo php🎜🎜🎜Enfin, je vous recommande de lire un cours classique "🎜PHP String Processing (Jade Girl Heart Sutra Edition)🎜", c'est gratuit~ Venez apprendre ! 🎜

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!

Déclaration:
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