Essayer de créer un simple traducteur de texte en PHP.extrait de regex/remplace les valeurs des balises de type xml via des (sous) groupes nommés
Il shoult correspondent à quelque chose comme:
Bla bla {translator id="TEST" language="de"/}
La langue peut être facultative
Blabla <translator id="TEST"/>
Voici le code:
$result = preg_replace_callback(
'#{translator(\s+(?\'attribute\'\w+)="(?\'value\'\w+)")+/}#i',
array($this, 'translateTextCallback'),
$aText
);
Il extrait les "attributs", mais se sert seulement le dernier. Ma première pensée a été, il a à voir avec le nommage de groupe, quand PHP écrase les éléments de tableau (nommés) sur chaque match. Mais laisser le groupe en dehors du nom ne fait que renvoyer le dernier match.
Voici un tableau comme retourné au rappel comme exemple
Array
(
[0] => {translator id="TEST" language="de"/}
[1] => language="de"
[attribute] => language
[2] => language
[value] => de
[3] => de
)
@void: Bonjour, et bienvenue sur StackOverflow! J'ai pris la liberté d'éditer votre article, de formater les portions de code, afin qu'elles soient plus faciles à lire. Pour vos prochaines questions, cela peut être fait en utilisant l'icône avec 0 et 1 sur le dessus de la boîte d'édition; et, si nécessaire, il y a un lien sur la droite de la page "poser une question", qui pointe vers la référence de la syntaxe que vous pouvez utiliser pour écrire des questions/réponses :-) –