Aller au contenu

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

php
strtr(string $str, array $replace) : string

Ici, $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

php
strtr(string $str, string $from, string $to) : string

Dans 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
<?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 ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.