Bonjour.

Je suis actuellement en train de faire une page pour modifier un fichier de configuration.

Je suis confronté à un problème.
Sur ma page principale, j'ai un input de type texte qui contient le texte "\n" (sans les guillemets).
Pour l'afficher, j'utilise htmlentities, pas de problème.

Puis, j'effectue mon enregistrement en utilisant la fonction javascript suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function enreg_conf(){
 var tab = document.getElementsByTagName('*');
 var max = tab.length;
 var json = '';
  for (i=0;i<max;i++){
    if (tab[i].value!=undefined && tab[i].className != ''){
      if (json != ''){
        json = json+',"'+tab[i].className+'":"'+tab[i].value+'"';
      }else{
        json = json+'"'+tab[i].className+'":"'+tab[i].value+'"';
      }
      //alert(i+' : '+tab[i].value);
    }
  }
  json = '{'+json+'}';
  var url = 'traite_config.php';
    var pars='json='+json;
    var myAjax = new Ajax.Updater(
                              'traite_config',
                  						url,
                  						{
                  							method: 'post',
                  							parameters: pars,
                  							evalScripts:true
                  						});
}
</script>
Jusqu'ici tout va bien.

dans mon fichier traite_config.php, je fait en sorte d'afficher ce que je reçoit. Tout s'affiche parfaitement bien, sauf le fameux \n.

J'ai essayé plusieurs choses, et en dernier recours ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
if (isset($_POST['json'])){
  $json = $_POST['json'];
  $json = stripslashes($json);
  $tab = json_decode($json,true);
  //print_r($tab);
 
  $print_conf = '';
  if (count($tab)>0){
    foreach($tab as $ligne => $v){
      $print_conf .= "\"".htmlentities(str_replace("\\","\\\\",addslashes($v)))."\"\r\n";
    }
  }
}
mais rien n'y fait.
à l'affichage de $print_conf, il y a toujours un saut de ligne et pas \n. comment faire pour régler ce problème?

merci d'avance pour vos réponses.