8791 sujets

Développement web côté serveur, CMS

Bonjour !

J'utilise la libraire image GD pour afficher les titres de mes actualités sur une page web en php où le titre est récupérer dans un fichier XML (chaque news est un fichier XML)

Le soucis est que une fois le titre récupérer dans le fichier xsl pour l'afficher dans la page php l'url est :

Balise Image dans le fichier xls :
<img src="_data/lib/img/texte.php?texte={$titre}&#38;taille=12&#38;width=420&#38;max_chaine=60&#38;couleur=noir" alt="" />


(je rappelle que &#38; code & dans un fichier xsl)

Résultat dans le code source :
<img src="_data/lib/img/texte.php?texte=exemple%&amp;taille=12&amp;width=490&amp;max_chaine=70&amp;couleur=noir" alt=""/>


or % sert à encoder des caractère spéciaux tel que %20 l'espace et donc pour coder % il faut utiliser %25

Ce qui donne au final de mettre en titre dans le fichier XML

<titre>exemple%25</titre>


et la bingo tout marche mais le titre du fichier XML ne sert pas qu'a générer des images

j'ai essayé quelque truc : utilisation des CDATA du caractère &#37; et &#x25;

Je suis dans l'impasse, j'en appelle a votre réflexion

Merci d'avance
Bonsoir,

Il n'y a pas (à ma connaissance) de moyen simple pour régler ton problème purement en xsl.

Par contre php possède une fonction urlencode() destiné à rendre une chaine "url-safe".

Je vois alors deux solutions:
-Dupliquer le champ dans le XML, un avec la valeur encodée, l'autre avec la valeur brute. Php se chargeant du traitement lors de la création du fichier.
-Utiliser la possibilité de rendre accessible les fonctions php dans xsl. Dans ce cas ne pas oublier que les performances en prendront pour leur grade donc prévoir un système de cache pour le résultat.