essaye cette commande:
Code:<?php echo nl2br($s); ?>
Version imprimable
essaye cette commande:
Code:<?php echo nl2br($s); ?>
dans un textarea
\r => %0d
\n => %0a
Sinon le textarea est assez versatile :
Code:
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
28
29 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Nouvelle page 1</title> <style type="text/css"> textarea { width :300px; display:block; } </style> </head> <body> <textarea value="lkjlkjlk\ndsqfdssfd"></textarea> <textarea value="">lkjlkjlk\ndsqfdssfd</textarea> <textarea id="foo" value=""></textarea> <script type="text/javascript"> document.getElementById('foo').value='lkjlkjlk\nandsqfdssfd' </script> <textarea id="bar" value=""></textarea> <script type="text/javascript"> document.getElementById('bar').innerHTML='lkjlkjlk\randsqfdssfd' </script> </body> </html>
Pour zapper le saut de ligne, j'essaie de faire ça :
1) contenu du fichier texte :
Laplace ça me casse les pieds.
Couillon> Blabla.
Laplace> Sois plus explicite
(créé avec bloc notes)
2) PHP :
Le résultat du var_dump est :Code:
1
2
3
4 $s = file_get_contents($bavard); $t= explode ("\n", $s ); $jj= count($t); var_dump($t);
array(4) { [0]=> string(35) "Laplace ça me casse les pieds. " [1]=> string(18) "Couillon> Blabla. " [2]=> string(29) "Laplace> Sois plus explicite " [3]=> string(1) " " }
On remarque le " " après pieds ; idem pour chaque ligne. Je pense que c'est le saut de ligne qui reste...
3) JS
Code:
1
2
3
4
5
6
7
8
9
10
11 function bip() { var j= '<?php echo $jj; ?>' ; j=j-1; var i =0; var s2= "<?php echo $t[0]; ?>" ; for(i=1;i<=j;i++){ s2=s2 + '\n' + '<?php echo $t[i]; ?>' ; } document.form.elements[3].value= s2 ;
4) Ce que dit firebug :
unterminated string literal
[Stopper sur une erreur]
var s2= "Laplace ça me casse les pieds.
" ;
En fait il semble considérer que le saut de ligne est là et qu'il ne trouve plus le " de fin car il le cherche sur la même ligne...
Bref c'est compliqué.
Sous windows (pas sous Unix), il y a toujours 2 caractères pour un retour de ligne ....caractère 10 puis le caractère 13 (ou l'inverse, je ne sais plus).
Ton script PHP supprime uniquement le \n.
il te reste le caractère \r que tu as dans ta chaîne.
Bonjour,
voici :
Code:
1
2
3
4 <?php $bavard = 'monFichier.txt'; $s = file_get_contents($bavard); ?>
Code:
1
2
3
4
5
6
7
8 <script type="text/javascript"> function go(){ // on remplace les sauts de ligne, et on échappe les guillemets var s2 = "<?php echo str_replace(array(CHR(10),CHR(13),'"'),array('\n','','\"'),$s); ?>"; document.getElementById('avecjs').value = s2; alert(s2); } </script>
Code:
1
2
3
4
5
6 <body onload="go();"> <textarea name="texto" readonly="readonly" cols="50" rows="5" id="endirect" ><?php echo $s; ?></textarea> <textarea name="texto" readonly="readonly" cols="50" rows="5" id="avecjs" ></textarea> </body>
Code:var s2 = "<?php echo str_replace(array(CHR(10),CHR(13),'"'),array('\n','','\"'),$s); ?>";
Alors ça c'est fort ! Tu évites à la fois la boucle que je faisais après le explode et tu résous le cas de la différence WINDOWS/UNIX évoqué par olivieram !
Voir ce genre de lignes de prog m'est très utile comme j'apprends à peu près en même temps HTML, CSS, PHP, JAVASCRIPT et AJAX.
Tout marche au poil et je vous remercie beaucoup.8-)
Je réussis même à appeler de JS une fonction PHP qui exécute une requête sql, ce que je ne pensais pas possible ;)