strtr()
Introduction
La fonction strtr() de PHP permet de traduire des sous-chaînes au sein d'une chaîne. Elle est particulièrement utile pour le traitement de texte lorsque des séquences spécifiques doivent être remplacées efficacement. Cet article couvre sa syntaxe, son comportement et son utilisation pratique.
Comprendre la fonction strtr()
La fonction strtr() prend en charge deux signatures :
Signature par tableau
strtr(string $str, array $replace) : stringIci, $str est la chaîne d'entrée et $replace est un tableau associatif mappant des sous-chaînes à leurs remplacements. La fonction remplace toutes les occurrences des clés par leurs valeurs correspondantes.
Signature à trois arguments
strtr(string $str, string $from, string $to) : stringDans cette forme, $from et $to doivent avoir la même longueur. Chaque caractère de $from est mappé au caractère à la même position dans $to.
Comportement important : strtr() remplace les sous-chaînes en utilisant un algorithme de correspondance la plus longue en premier. Cela signifie que les motifs qui se chevauchent sont résolus en privilégiant la correspondance la plus longue, et les remplacements ne sont pas appliqués de manière récursive sur le résultat.
Exemple d'utilisation
Voici un exemple d'utilisation de la fonction strtr() en PHP :
Exemple de strtr() en PHP
<?php
$string = "Hello World!";
$translation_rules = array("H" => "J", "W" => "Z");
$translated_string = strtr($string, $translation_rules);
echo $translated_string;Dans l'exemple ci-dessus, nous définissons une chaîne $string et un tableau associatif $translation_rules. La fonction strtr() remplace les sous-chaînes spécifiées ("H" et "W") par leurs valeurs mappées ("J" et "Z"). Notez que strtr() gère les sous-chaînes multi-caractères et applique les remplacements en un seul passage, sans récursion.
Conclusion
La fonction strtr() offre un moyen efficace de traduire des sous-chaînes en PHP. Elle prend en charge à la fois le mappage par tableau et la traduction caractère par caractère via la signature à trois arguments. Étant donné qu'elle fonctionne en un seul passage en utilisant une logique de correspondance la plus longue en premier, elle est généralement plus rapide que str_replace() pour plusieurs remplacements. Comprendre ces comportements aide les développeurs à choisir le bon outil pour les tâches de traitement de texte.
Pratique
Quel est l'objectif de la fonction strtr en PHP ?