Remplacer les retours chariots par des caractères [PHP] - Programmation
Marsh Posté le 03-07-2001 à 18:05:50
document.form.config.value='sdsqdqsd\nd';
Marsh Posté le 03-07-2001 à 18:10:28
Rahaaaaaaaaaaa !!!!!!!!!!!!
merciiiii
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
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
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 ?
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
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 !!!!!!
Marsh Posté le 04-07-2001 à 17:49:32
Tes retour chariot, se serait pas des chr(10)+chr(13) ?
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
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)!
Marsh Posté le 04-07-2001 à 18:09:56
Citation : |
ouais, merci je m'étais un peu tout mélangé dans ces trucs
je vais essayer le ord(), ok
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 ?
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>" );
?>
Marsh Posté le 04-07-2001 à 23:32:43
Qui est ce plopiche usurpateur ?????
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 :
|
Le 'COUCOU' est juste un identifiant arbitraire marquant le début et la fin de chaîne.
Génial non ?
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 ))
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
Au fait, elle va bien mais j'ai pas réussi à la changer
Marsh Posté le 05-07-2001 à 13:06:56
Citation : |
Verdict de la moulinette :
mon caractère mystère est un chr(13) )))
je fais quoi maintenant ?
elcap.......
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 ?
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]
Marsh Posté le 05-07-2001 à 13:28:55
Et $config=str_replace(chr(13),"<br>",$config);
çà donne quoi ?
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]
Marsh Posté le 05-07-2001 à 13:42:16
et ça :
$config = preg_replace("/(\n|\n\r)/","<br>", $config);
.....???
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...
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]
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]
Marsh Posté le 05-07-2001 à 13:55:40
Non, je remplace la séquence \r\n par un "<br>" et pas \n\r...
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 !
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
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à...
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
Marsh Posté le 05-07-2001 à 15:08:49
C'est pas grave pour cette fois...
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]