Pascal
2010-11-05 22:00:38 UTC
Bonjour,
Voilà, j'utilise une architecture MVC* et les contenus HTML dynamiques
sont répartis dans des fichiers de template.
Comme ce ne sont pas des pages HTML complètes, il est difficile de les
éditer dans un WYSIWYG (genre Dreamweaver).
Et comme j'utilise un IDE pour le codage PHP, autant éditer le HTML dans
le même outil, mais en mode texte brut.
Ceci étant posé, je souhaite pouvoir écrire les contenus sans entités,
avec des caractères accentués et un encodage ISO-8859-15.
Je cherche donc une solution pour transformer, à la fin du traitement,
ces caractères en entités correspondantes, de préférence nommées.
Bien sûr, j'ai déjà plusieurs pistes, mais je voudrais les élargir avec
votre aide.
La première consiste à utiliser la fonction "htmlentities()", mais cela
suppose un retraitement inverse pour les chevrons, ce qui n'est pas si
simple car il peut y en avoir aussi dans le texte hors balises.
La deuxième consiste à établir une table de correspondance entre les
caractères à substituer et les entités équivalentes, puis à utiliser une
fonction comme "strtr()" pour effectuer la substitution.
C'est jouable mais un peu lourdingue, je trouve.
Dans tous les cas, je reste sensible à l'impact sur les performances, car
j'utilise un moteur de template ultra léger, c'est à dire ne nécessitant
pas de mise en cache serveur.
(* MVC = Modèle-Vue-Contrôleur)
Voilà, j'utilise une architecture MVC* et les contenus HTML dynamiques
sont répartis dans des fichiers de template.
Comme ce ne sont pas des pages HTML complètes, il est difficile de les
éditer dans un WYSIWYG (genre Dreamweaver).
Et comme j'utilise un IDE pour le codage PHP, autant éditer le HTML dans
le même outil, mais en mode texte brut.
Ceci étant posé, je souhaite pouvoir écrire les contenus sans entités,
avec des caractères accentués et un encodage ISO-8859-15.
Je cherche donc une solution pour transformer, à la fin du traitement,
ces caractères en entités correspondantes, de préférence nommées.
Bien sûr, j'ai déjà plusieurs pistes, mais je voudrais les élargir avec
votre aide.
La première consiste à utiliser la fonction "htmlentities()", mais cela
suppose un retraitement inverse pour les chevrons, ce qui n'est pas si
simple car il peut y en avoir aussi dans le texte hors balises.
La deuxième consiste à établir une table de correspondance entre les
caractères à substituer et les entités équivalentes, puis à utiliser une
fonction comme "strtr()" pour effectuer la substitution.
C'est jouable mais un peu lourdingue, je trouve.
Dans tous les cas, je reste sensible à l'impact sur les performances, car
j'utilise un moteur de template ultra léger, c'est à dire ne nécessitant
pas de mise en cache serveur.
(* MVC = Modèle-Vue-Contrôleur)
--
Cordialement, Pascal.
Cordialement, Pascal.