Texte :
L'expression régulière est un outil utilisé pour faire correspondre des chaînes. Les expressions régulières peuvent être utilisées pour valider la saisie, rechercher du texte de remplacement ou extraire les informations requises. Les expressions régulières en PHP sont très utiles lorsque l'on travaille avec des chaînes.
Cependant, certains cas particuliers nécessitent une attention particulière lorsqu'il s'agit de noms de fichiers ou d'URL. Si vous utilisez la fonction preg_match commune de PHP pour faire correspondre les noms de fichiers se terminant par .php, vous risquez de rencontrer des problèmes. Par exemple, supposons que vous souhaitiez faire correspondre un fichier nommé "exemple.php" :
$file = 'example.php'; if (preg_match('/\.php$/', $file)) { echo "File is a PHP file"; } else { echo "File is not a PHP file"; }
Exécutez le code ci-dessus, vous constaterez que "Le fichier est un fichier PHP" est affiché. Cependant, si vous essayez de faire correspondre un fichier nommé "exemple2php" :
$file = 'example2php'; if (preg_match('/\.php$/', $file)) { echo "File is a PHP file"; } else { echo "File is not a PHP file"; }
vous constaterez que le résultat est "Le fichier est un fichier PHP", ce qui est en fait un résultat incorrect. En effet, dans le deuxième exemple, la chaîne « exemple2php » se termine également par la chaîne « .php ». Pour éviter cela, nous avons besoin d’expressions régulières plus précises.
Une meilleure solution consiste à faire correspondre uniquement les mots complets se terminant par .php. Pour y parvenir, nous pouvons utiliser les limites de mots (b), qui peuvent être utilisées pour faire correspondre le début ou la fin d'un mot. De cette façon, notre code peut être modifié en :
$file = 'example.php'; if (preg_match('/\.php\b/', $file)) { echo "File is a PHP file"; } else { echo "File is not a PHP file"; }
Exécutez le code ci-dessus et vous constaterez que le résultat est correct. Si vous réessayez en utilisant le test de chaîne de "example2php", vous constaterez que le résultat sera "Le fichier n'est pas un fichier PHP".
Vous savez maintenant comment faire correspondre correctement les chaînes se terminant par .php, mais ce n'est pas tout ce à quoi il faut prêter attention. Parfois, vous devrez peut-être faire correspondre une chaîne telle que « example.class.php » ou « example.php5 ». Pour résoudre ces cas particuliers, on peut utiliser des groupes dans les expressions régulières. Par exemple, si vous souhaitez faire correspondre les noms de fichiers se terminant par ".php", ".php4", ".php5" ou ".phtml", vous pouvez écrire comme ceci :
$file = 'example.php5'; if (preg_match('/\.(php|php4|php5|phtml)$/', $file)) { echo "File is a PHP file"; } else { echo "File is not a PHP file"; }
Dans le code ci-dessus, nous avons utilisé le groupe (php |php4|php5|phtml), ce qui signifie que nous n'avons besoin que d'écrire des groupes dans l'expression régulière pour faire correspondre plusieurs chaînes. Nous avons également utilisé le signe $, ce qui signifie qu'il doit se terminer par la chaîne correspondant.
En conclusion, les expressions régulières sont non seulement très utiles en PHP, elles constituent également un outil important pour travailler avec des chaînes dans de nombreux autres langages de programmation. Lorsque vous travaillez avec des noms de fichiers ou des URL, portez une attention particulière aux détails et essayez d'utiliser des groupes et des limites pour vous assurer que votre expression régulière correspond à ce dont vous avez besoin. Si vous débutez avec les expressions régulières, nous vous recommandons d'en savoir plus sur les expressions régulières pour comprendre leur fonctionnement et leur syntaxe.
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!