[PHP] Remplacer les retours chariots par des caractères

Remplacer les retours chariots par des caractères [PHP] - Programmation

Marsh Posté le 03-07-2001 à 17:45:56    

voilà j'ai ça dans un événnement onclick :
 
document.form.config.value='sdsqdqsd
d';
 
seulement ça ne marche pas.... par contre  
 
document.form.config.value='sdsqdqsdd';
 
fonctionne... comme si le retour à la ligne empêche le script de fonctionner.... dans ce cas, comment remplir ce type de champs (texte) par code ????
 
merci,
elcap :)

 

[edtdd]--Message édité par elcap--[/edtdd]

Reply

Marsh Posté le 03-07-2001 à 17:45:56   

Reply

Marsh Posté le 03-07-2001 à 18:05:50    

document.form.config.value='sdsqdqsd\nd';


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 03-07-2001 à 18:10:28    

Rahaaaaaaaaaaa !!!!!!!!!!!!
 
merciiiii  :D  :D  :D  :D  
 
mais pourquoi que j'y ai pas pensé ?????? non ne me répondez pas :):):):)
 
si je veux, en php, faire une petite procedure qui me fasse le remplacement tout seul, avec un ereg() par ex.... comment lui indiquer de remplacer un retour à la ligne par un \n ? je ne vois pas comment lui dire "retour à la ligne".... enfin, je vais chercher dans la doc :)
 
meric encore,
elcap :):):)

Reply

Marsh Posté le 04-07-2001 à 15:41:46    

bon, je continue sur ma lancée....
 
pour remplacer les retours chariot par des caractères, je fais ça :  
 
$config = str_replace( chr(13), '\n', $config);  
 
seulement au lieu de me remplacer le retour chariot par un \n, il me rajoute un \n après un retour chariot.  
 
de plus, une fois dans la table, je me suis rendu compte, par phpmyadmin, que les \n étaient remplacés par des retour chariots... résultat j'ai une chaine de caractère avec deux retours chariot là où il devrait y avoir un \n.  
 
Le but final étant d'avoir une chaine que je pourrais envoyer en "value" à un champs de formulaire de type "text" par programme. Quand je voudrais afficher cette chaine en html, le remplacerai les \n par des <br>  
 
Merci,  
Elcap :)

Reply

Marsh Posté le 04-07-2001 à 16:34:23    

faut peut être directement inserer des <br> dans ta base en faisant un nl2br avant insertion ?

Reply

Marsh Posté le 04-07-2001 à 17:00:18    

non, paske c'est fait pour insérer le texte dans un texte area et celui-ci s'en moque des <br> :)
 
je mettrais les <br> quand y'en aura besoin :)

Reply

Marsh Posté le 04-07-2001 à 17:27:39    

bon, je me réponds....j'ai essayé avec nl2br pour voir.... ben c'est fou !!! j'ai bien des balises <br /> (étrange cette balise) mais j'ai toujours les retours chariot !!!!!!

Reply

Marsh Posté le 04-07-2001 à 17:49:32    

Tes retour chariot, se serait pas des chr(10)+chr(13) ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 04-07-2001 à 17:54:48    

si je reprend ma table ascii...
c'est nouvelle ligne + retour chariot....  
 
hmm.. mais tu sais que tu poses de bonnes questions ?
 
comment le savoir ? mes "retour à la lignes", sont-ce des chr(10) ou des chr(13) ?
 
comment le savoir et comment m'en sortir ?
 
merci :)

Reply

Marsh Posté le 04-07-2001 à 18:03:35    

C'est peut-être aussi les deux: CR_LF = chr(10)+chr(13)
 
Sinon, affiche les codes de tous les caractères de ta chaîne avec ord() pour voir ce qu'il y a dedans !
 
D'autre part, en PHP, le \n est un chr(10) pas un chr(13)!


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 04-07-2001 à 18:03:35   

Reply

Marsh Posté le 04-07-2001 à 18:09:56    

Citation :


D'autre part, en PHP, le \n est un chr(10) pas un chr(13)!


 
ouais, merci :) je m'étais un peu tout mélangé dans ces trucs :):)
 
je vais essayer le ord(), ok :)

Reply

Marsh Posté le 04-07-2001 à 18:25:54    

j'arrrive pas à faire ça avec ord... là je voius pas comment passer à la moulinette tout les caractères de la chaine... une idée ?

Reply

Marsh Posté le 04-07-2001 à 18:41:53    

<?php
for( $i=0; $i<strlen($TaChaine); $i++ )
    echo("Le caractère N°$i est un : " . substr($TaChaine,$i,1) . " dont le code est : " . ord(substr($TaChaine,$i,1)) . "<br>" );
?>


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 04-07-2001 à 19:58:00    

c'estle strlen qui me manquait.... merci :)

Reply

Marsh Posté le 04-07-2001 à 23:00:11    

c'est pas /r pour retour chariot ?


---------------
oui oui
Reply

Marsh Posté le 04-07-2001 à 23:32:43    

Qui est ce plopiche usurpateur ?????
 
 :fou:  :fou:  :fou:  :fou:  :fou:


---------------
Je suis le génial inventeur des lunettes de soleil avec un petit grillage sur les trous de nez permettant de humer le parfum enivrant des fleurs sans respirer un horrible insecte piquant !!! :lol:
Reply

Marsh Posté le 04-07-2001 à 23:57:13    

Presque !
c'est pas /r, mais \r ;)
 
Voir la doc : http://php.net/manual/fr/language.types.string.php
 
Très intéressant à propos des chaînes en php4:
 
Au lieu de faire :
 
$toto="Ceçi est un exemple de \"chaîne\"\navec des doubles guillemets et un Line_Feed !";
 
On peut faire :
 

Code :
  1. $toto=<<<COUCOU
  2. Ceçi est un autre exemple de "chaîne"
  3. avec des doubles guillemets et un Line_Feed !
  4. Mais c'est quand même plus joli comme çà !
  5. COUCOU;


 
Le 'COUCOU' est juste un identifiant arbitraire marquant le début et la fin de chaîne.
Génial non ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 05-07-2001 à 12:05:22    

mara's dad, merci :) j'ai vu ça hier soir sur le site phpinfo.net dans les astuces... mais j'avais pas vu qu'on pouvais l'utiliser aussi comme ça :) c bon àsavoir :)
 
Plopiche, c'est moi qui ai répondu hier soir, chez moi, et comme tu te sers de mon pc avec ton pseudo et ben c'est sous ton pseudo que c'est parti, voilà.... t'as qu'a pas tout trifougner mon pc :)))

Reply

Marsh Posté le 05-07-2001 à 12:33:26    

Elcap si je trifougne dans ton PC c'est parce que tu me donnes ton BB à garder et que je suis complètement intox  :D  :D  
 
Au fait, elle va bien mais j'ai pas réussi à la changer  :sol:  :sol:  :sol:


---------------
Je suis le génial inventeur des lunettes de soleil avec un petit grillage sur les trous de nez permettant de humer le parfum enivrant des fleurs sans respirer un horrible insecte piquant !!! :lol:
Reply

Marsh Posté le 05-07-2001 à 13:06:56    

Citation :


C'est peut-être aussi les deux: CR_LF = chr(10)+chr(13)  
 
Sinon, affiche les codes de tous les caractères de ta chaîne avec ord() pour voir ce qu'il y a dedans !  
 
D'autre part, en PHP, le \n est un chr(10) pas un chr(13)!  


 
Verdict de la moulinette :
 
mon caractère mystère est un chr(13) :))))
 
je fais quoi maintenant ? :)
 
elcap.......

Reply

Marsh Posté le 05-07-2001 à 13:12:15    

Ton caractère est un chr(13) OK !
 
C'est quoi déja ce que tu veux faire ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 05-07-2001 à 13:22:10    

:):):)
 
je veux que ma chaine, provenant d'un text area :
 
"coucou
je
suis
le
 
chat"
 
devienne : "coucou<br>je<br>suis<br>le<br><br>chat"
 
comme ça je peux l'afficher dans une page html, ou remplacer les <br> par des \n pour la réafficher dans un text area....
 
seulement ça : $config = nl2br($config);  
ça marche pas.... ça ajoute le <br /> au début de la nouvelle ligne, sans enlever le retour chariot (chr(13)) de la lligne précédente... par ex :
 
"coucou
<br />je
<br />suis
<br />le
<br />
<br />chat"
 
elcap

 

[edtdd]--Message édité par elcap--[/edtdd]

Reply

Marsh Posté le 05-07-2001 à 13:28:55    

Et $config=str_replace(chr(13),"<br>",$config);
çà donne quoi ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 05-07-2001 à 13:34:28    

ça donne malheureusement ça (j'avais essayé) :
 
"coucou<br>  
je<br>
suis<br>
le<br>
<br>
chat"  
 
idem avec ereg_replace
 
:(:(

 

[edtdd]--Message édité par elcap--[/edtdd]

Reply

Marsh Posté le 05-07-2001 à 13:42:16    

et ça :
 
$config = preg_replace("/(\n|\n\r)/","<br>", $config);
 
.....???

Reply

Marsh Posté le 05-07-2001 à 13:47:33    

ça donne ça :
 
"coucou
<br>je
<br>suis
<br>le
<br>
<br>chat"
 
je vais devenir fou.... c pas possible cette histoire...

Reply

Marsh Posté le 05-07-2001 à 13:48:49    

J'a touvé juste une petite inversion ->
 
 
$config = preg_replace("/(\n|\r\n)/","<br>", $config);  
 
La ça marche !!!

 

[edtdd]--Message édité par fly LM--[/edtdd]

Reply

Marsh Posté le 05-07-2001 à 13:52:49    

j'ai peut-être mal lu, mais.... c'est pas la même chose ????
 
ha ok... tu avais pas inversé.... ça marche !!!!! formidable.... tu peux m'expliquer ? paske c'est bien si ça marche mais si je comprends pas je pourrais pas le réutiliser, et en plus y'a peu d'interêt :)
 
merci encore :)

 

[edtdd]--Message édité par elcap--[/edtdd]

Reply

Marsh Posté le 05-07-2001 à 13:55:40    

Non, je remplace la séquence \r\n par un "<br>" et pas \n\r...

Reply

Marsh Posté le 05-07-2001 à 13:56:50    

Y'avais \n\r ce qui fait LF_CR !
Au lieu de \r\n qui nous fait du CR_LF !
 
Si çà marche, c'est que ton caractère mystère est chr(13) + chr(10) et non pas chr(13) tout seul !
 
T'aurras mal lu le résultat de la moulinette !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 05-07-2001 à 14:00:36    

alors, attends je remet la moulinette et je relance :)
ça va me rendre fou cette histoire :)

Reply

Marsh Posté le 05-07-2001 à 14:09:48    

elcap a écrit a écrit :

ha ok... tu avais pas inversé.... ça marche !!!!! formidable.... tu peux m'expliquer ? paske c'est bien si ça marche mais si je comprends pas je pourrais pas le réutiliser, et en plus y'a peu d'interêt :)
 
merci encore :)




 
preg_replace() : Rechercher et remplacer par expression régulière (syntaxe PERL je crois...)
 
 
sa constuction:
 
preg_replace(mixed pattern, replacement,subject);
 
Analyse "subject" pour trouver l'expression "pattern" et remplace les résultats par "replacement" .
 
Pour ton cas: le masque de recherche est : la séquence \n ou \r\n
 
pattern vaut alors : "/(\n|\r\n)/" le | c'est le "ou"
 
voilà...

Reply

Marsh Posté le 05-07-2001 à 14:12:36    

CQFD :)
 
d'autant qu'avec la moulinette on trouve 13 puis 10 :)))
 
je suis désolé, je vous ai fait iech à cause d'un mauvaise lecture de la moulinette :)
 
merci à tout deux, vous me sauvez la mise :)

Reply

Marsh Posté le 05-07-2001 à 15:08:49    

C'est pas grave pour cette fois... ;)


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed