Bonjour,
Il s'agit d'une application web assez complexe, je vais essayer d'être le plus simple et le plus concis. Le problème concerne les retours chariots \n \r \t avec json.
L'application fonctionne via Ajax, quand on clique sur un élément du menu, ça change le contenu de la page (sans toucher au menu).
Certaines de ces pages contiennent des zone de saisie <textarea> pour enregistrer des scripts php/html/javascript.
Si je laisse les retours chariots, ça plante, aucun retour, si je les enlève le code dans le textarea est illisible et ne correspond pas à ce qui a été enregistré, si je les échappe ils apparaissent partout: dans le contenu de la page (il ne faut pas) et dans le textarea (la ok).
En détail le clic du menu lance une fonction javascript, appel d'Ajax qui lance un script php de lecture de fichier:
Cette variable $contents est ensuite envoyée dans une moulinette json, le tout est renvoyé à la première fonction javascript pour placer dans la balise de contenu le résultat.
Pour que cela marche je suis obligé de mettre les lignes suivantes après ob_end_clean();
Mais du coup ça nettoie aussi dans les codes éditables à l'intérieur des textarea.
Existe t-il un moyen de crypter les \n et compagnie, cryptage qui passerait les remplacements et serait ensuite automatiquement interprété correctement par le textarea à l'affichage?
Comme c'est le cas avec < et > par exemple.
Ou une autre solution?
Merci!
Yokho
Il s'agit d'une application web assez complexe, je vais essayer d'être le plus simple et le plus concis. Le problème concerne les retours chariots \n \r \t avec json.
L'application fonctionne via Ajax, quand on clique sur un élément du menu, ça change le contenu de la page (sans toucher au menu).
Certaines de ces pages contiennent des zone de saisie <textarea> pour enregistrer des scripts php/html/javascript.
Si je laisse les retours chariots, ça plante, aucun retour, si je les enlève le code dans le textarea est illisible et ne correspond pas à ce qui a été enregistré, si je les échappe ils apparaissent partout: dans le contenu de la page (il ne faut pas) et dans le textarea (la ok).
En détail le clic du menu lance une fonction javascript, appel d'Ajax qui lance un script php de lecture de fichier:
ob_start();
require("lefichieralire.php");
$contents=ob_get_contents();
ob_end_clean();
Cette variable $contents est ensuite envoyée dans une moulinette json, le tout est renvoyé à la première fonction javascript pour placer dans la balise de contenu le résultat.
Pour que cela marche je suis obligé de mettre les lignes suivantes après ob_end_clean();
$contents=str_replace("\n","",$contents);
$contents=str_replace("\r","",$contents);
$contents=str_replace("\t","",$contents);
Mais du coup ça nettoie aussi dans les codes éditables à l'intérieur des textarea.
Existe t-il un moyen de crypter les \n et compagnie, cryptage qui passerait les remplacements et serait ensuite automatiquement interprété correctement par le textarea à l'affichage?
Comme c'est le cas avec < et > par exemple.
Ou une autre solution?
Merci!
Yokho