Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: Essaion

Bonjour à tous ;-)

J'ai des soucis avec mes codes de retour à la ligne dans mes pages php (\n).
Mon browser n'affiche pas les retours à la ligne ?-(
Sur mes deux machines (une Windows XP avec IE + EasyPHP et l'autre Linux Slackware 10.0 avec Konqueror + Apache), j'ai le même soucis.
Dans le doute, voici mon code PHP avec retour à la ligne qui ne fonctionne pas (des fois que je me serais gouré dans celui-ci):

----------------------------------------------------------------------------------------
printf("%1d %10s à %.2f euros pièce : %.2f euros\n", 2, 'hamburgers', $hamburger, ($hamburger*$nb_hamburger));
printf("%1d %9s à %.2f euros pièce : %.2f euros\n", 1, 'milkshake', $milkshake, ($milkshake*$nb_milkshake));
---------------------------------------------------------------------------------------

Je vous passe l'initialisation des variables et les balises d'ouverture et de fin de php.

Mon code ne retourne aucune erreur, il m'affiche les bon résultats mais simplement il n'interprète pas les retour à la ligne \n.

Quelqu'un pourrait-il m'éclairer ?

Merci
Essaion ;-)



Poste le Sunday 30 January 2005 18:26:19
Répondre     Citer    
Re: Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: Cyrille

Bonsoir,
Perso. pour un retour à la ligne j'utiliserais un code \r\n plutot que \n
echo "ligne 1\r\n" ;
echo "ligne 2\r\n" ;
Espere que c'est à ça que tu pensais
++
Cyrille

Poste le Sunday 30 January 2005 20:20:31
Répondre     Citer    
Re: Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: marc ferraton

en html, c'est plutot <br>

il faudrait faire
printf("%1d %10s à %.2f euros pièce : %.2f euros<br>", 2, 'hamburgers', $hamburger,

L'homme qui parlait à l'oreille des PC @#%!

Poste le Sunday 30 January 2005 21:05:04
Répondre     Citer    
Re: Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: Jonesy's

Bonsoir,

En plus de ce que dit Marc, tu peux laisser le '\n' comme tu met en forme le source HTML, ce qui est agréable aussi afin de permettre la relecture et la lecture d'autrui.

@+

--- Marchons seul, sans faire le mal, sans rien attendre, tel l'éléphant qui traverse la forêt. ---

Poste le Sunday 30 January 2005 21:35:33
Répondre     Citer    
Re: Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: Essaion

Citation
marc ferraton
en html, c'est plutot <br>

il faudrait faire
printf("%1d %10s à %.2f euros pièce : %.2f
euros<br>", 2, 'hamburgers', $hamburger,

Bonsoir,

Non, la simple balise <br> renvoie une erreur (j'avais déjà testé...), par contre <br/> fonctionne n'oubliez pas qu'il s'agit de l'inclusion d'une balise html dans du code php.
Voici le code que j'ai trouvé comme solution de rechange et qui fonctionne.
-----------------------------------------------------------------------------------------
printf("%1d %10s à %.2f euros pièce : %.2f euros<br/>", 2, 'hamburgers', $hamburger, ($hamburger*$nb_hamburger));
printf("%1d %9s à %.2f euros pièce : %.2f euros<br/>", 1, 'milkshake', $milkshake, ($milkshake*$nb_milkshake));
printf("%1d %9s à %.2f euros pièce : %.2f euros<br/>", 1, 'soda', $soda, ($soda*$nb_soda));
--------------------------------------------------------------------------------------------

Donc j'ai trouvé une solution de rechange mais pas l'explication pourquoi mon \n inséré dans une string à double cote ne fonctionne pas.?-(

Merci en tout cas de vous pencher sur le problème ;-)
A+
Essaion ;-)

Poste le Sunday 30 January 2005 22:36:50
Répondre     Citer    
Re: Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: Essaion

Citation
Cyrille
Bonsoir,
Perso. pour un retour à la ligne j'utiliserais un
code \r\n plutot que \n
echo "ligne 1\r\n" ;
echo "ligne 2\r\n" ;
Espere que c'est à ça que tu pensais
++
Cyrille

Bonsoir Cyrille,

Je viens de tester ta solution "...\r\n" et même "...\n\r" mais hélas...fonctionne pas :-(
J'avoue que cela me laisse perplexe...#%b

A+
Essaion ;-)

Poste le Sunday 30 January 2005 22:50:45
Répondre     Citer    
Re: Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: Cyrille

Bonjour,
J'avoue ne pas trop comprendre !
1/ Tu veux réaliser quoi ? Un fichier texte ou html ?
2/ Tu peux mettre en exemple la totalité du fichier que tu fais (depuis la 1ere balise jsq la dernière)?
3/ si erreurs, les donner
Bonne journée
++
Cyrille

Poste le Monday 31 January 2005 07:58:27
Répondre     Citer    
Re: Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: Essaion

Citation
Cyrille
Bonjour,
J'avoue ne pas trop comprendre !
1/ Tu veux réaliser quoi ? Un fichier texte ou
html ?
2/ Tu peux mettre en exemple la totalité du
fichier que tu fais (depuis la 1ere balise jsq la
dernière)?
3/ si erreurs, les donner
Bonne journée
++
Cyrille

Bonjour Cyrille,

Désolé je suis au boulot donc pas devant ma machine perso, promis je post ma page de code complète ce soir.

C'est tout simple, je désire en retour une page html qui m'affiche:

Le nombre de hamburger commandé, le prix à la pièce, le prix total de la commande. Le tout sous la forme d'un pseudo tableau (sans bordure) avec chaque article (hamburger, milkshake, soda) inscrit par ligne:

Pour l'instant mon code ne me revoie pas d'erreur comme je l'ai dit plus haut, le seul soucis est qu'il me place chaque ligne à la suite les unes des autres au lieu des unes sous les autres, C'est tout.
Pour le reste les calculs fonctionnent et je n'ai pas d'erreur en retour.

Comme je l'ai dit plus haut également, l'utilisation de la balise <br/> fonctionne et tout va bien, mais mon soucis vient du fait qu'une simple balise "\n" devrait également fonctionner !! et je m'étonne qu'içi elle ne fonctionne pas.

Voilà c'est tout, donc ce soir je post tout le code la page.
A+
Essaion ;-)

Poste le Monday 31 January 2005 08:49:34
Répondre     Citer    
Re: Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: Jonesy's

Bonjour,

Citation
Essaion
Comme je l'ai dit plus haut également, l'utilisation de la balise <br/> fonctionne et tout va bien, mais mon soucis vient du fait qu'une simple balise "\n" devrait également fonctionner !! et je m'étonne qu'içi elle ne fonctionne pas.
Je me demande ce qui te fait penser cela... Je n'ai jamais entendu dire que PHP générer les balises fin de ligne tout seul.
Selon moi la solution est le <br />

@+

--- Marchons seul, sans faire le mal, sans rien attendre, tel l'éléphant qui traverse la forêt. ---

Poste le Monday 31 January 2005 10:00:20
Répondre     Citer    
Re: Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: Essaion

Citation
Jonesy's
Je me demande ce qui te fait penser cela... Je
n'ai jamais entendu dire que PHP générer les
balises fin de ligne tout seul.
Selon moi la solution est le <br />

Heu...je crois qu'il y a un soucis de compréhension là, où a tu lu que je disais que PHP générait des balise tout seul ???
La solution que j'ai effectivement trouvé est bien <br/> merci de me rappeller une solution que j'avais déjà trouvé...

A+
Essaion ;-)

Poste le Monday 31 January 2005 11:31:54
Répondre     Citer    
Re: Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: Jonesy's

Re...

Ben, c'est tout de même à cela que cela revient ce que tu dis... Non ?
Puisque sans <br /> un navigateur ne revient pas à la ligne. Ou alors tu ne généres pas de HTML, mais du texte brut ?

Et je sais que tu as déjà la solution, ce que je n'arrive pas à comprendre c'est le "problème" qui pour moi n'en est pas un puisque c'est "normal".

:-)
@+

--- Marchons seul, sans faire le mal, sans rien attendre, tel l'éléphant qui traverse la forêt. ---

Poste le Monday 31 January 2005 12:00:25
Répondre     Citer    
Re: Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: marc ferraton

Tout d'abord je ne cromprends pas le <br/>
ce doit etre un pb PHP... mais si je regarde les sources de cette page je retrouve bien <br/> ?????????

mais la balise html de retour ligne est bien <br>
(ci-dessous source)

<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title></title>
</head>
<body>
<pre><br clear="all">fdghdsfgh <br>afghhj<br><br></pre>
</body>
</html>

le \n peut etre afficher dans une page web en tant que retour à la ligne, mais il faut que ce texte soit inclus dans une balise
<code> </code> ou meme <pre> </pre>
il se pourrait donc que lors de tu ais déjà utilisé un tel balisage sans l'identifier

afin je parle de html pure pour les afficher avec php peut-etre fait-il mettte <pre/> </pre/> ???

Poste le Monday 31 January 2005 13:52:03
Répondre     Citer    
Re: Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: Essaion

Je vois qu'ils y en a qui s'impatientent, aussi je ne vais pas attendre ce soir pour livrer le code qui me pose problème.J'en ai fait un vite fait pour illustrer mon propos.

J'en profite tout de suite pour signaler que je suis loin d'être un spécialiste en PHP et que j'attend peut-être des choses de mon code qui ne peuvent se produire, mais il me semble bien pourtant que le caractère spéciale \n placé entre deux guillemets à double cote (dans du code php), signifiait une nouvelle ligne, et donc, que tout ce qui suis ce caractère sera placé sur la ligne d'en dessous.

Exemple de code:
------------------------------------------------------------------------------------
<html>
<body>

<?php

//Avec le caractère spécial "\n"
$hamburger=1.5;
$nb_hamburger=2;
$milkshake=2.5;
$nb_milkshake=1;

printf("%1d %10s à %.2f euros pièce : %.2f euros\n", 2, 'hamburgers', $hamburger, ($hamburger*$nb_hamburger));
printf("%1d %9s à %.2f euros pièce : %.2f euros\n", 1, 'milkshake', $milkshake, ($milkshake*$nb_milkshake));

?>

</body>
</html>
-------------------------------------------------------------------------------------

Voici ce que me renvoie mon browser sur une seule ligne:
-----------------------------------------------------------------------------------------
2 hamburgers à 1.50 euros pièce : 3.00 euros 1 milkshake à 2.50 euros pièce : 2.50 euros
-----------------------------------------------------------------------------------------

N'aurait-il pas du me renvoyermoody smiley
------------------------------------------------
2 hamburgers à 1.50 euros pièce : 3.00 euros
1 milkshake à 2.50 euros pièce : 2.50 euros
------------------------------------------------
------------------------------------------------

A+
Essaion ;-)

Pardon à ceux que j'ennuie avec mes problèmes qui n'en sont peut-être pas d'ailleurs...;-p

Poste le Monday 31 January 2005 15:04:16
Répondre     Citer    
Re: Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: Cyrille

Bonsoir,
<html>
<body>
<?php
$hamburger=1.5;
$nb_hamburger=2;
$milkshake=2.5;
$nb_milkshake=1;

echo $nb_hamburger . 'hambourgers à ' . $hambourger . ' euros : ' . $nb_hambourger * $hambourger ;
echo '<br />';
echo $nb_milshake . 'milshake à ' . $milshake
?>
</body>
</html>
------------
Ou t'encadre par des balises <p>texte... bla bla bla </p>
<p>second bla bla bla</p>

Voila
Bon courage

PS : le code php que je t'ai filé est plus que grossier !
PS 2 : <br> = html et <br /> = xhtml ---> on met le slash en xhtml sur les balises ouvrantes qui n'ont pas de balises fermantes (style br mais aussi hr....)


++
Cyrille

Poste le Monday 31 January 2005 18:05:15
Répondre     Citer    
Re: Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: Jonesy's

Re...

Cyrille, prof en html ! ;-p

Tout pareil. angry smiley)
@+

--- Marchons seul, sans faire le mal, sans rien attendre, tel l'éléphant qui traverse la forêt. ---

Poste le Monday 31 January 2005 18:08:27
Répondre     Citer    
Re: Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: Cyrille

Citation
auteur
Cyrille, prof en html !
--> Je n'ai pas cette prétention !

Bonne soirée, winking smiley
Cyrille

Poste le Monday 31 January 2005 18:45:43
Répondre     Citer    
Re: Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: Essaion

Bon allez je laisse tomber mes \n que je remplace par des <br /> et le tour et joué !!
Allez A+
Essaion ;-)

Poste le Monday 31 January 2005 19:25:26
Répondre     Citer    
Re: Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Envoyé par: Cyrille

Aussi bien tu n'as pas le choix. Si c'est pour faire de l'html, pour aller à la ligne c'est <br> ou <br /> et non \n.
A la rigueur, \r\n ou \n t'aide à structurer le code source quand tu fais "afficher la source" ou "code source de la page" à partir de ton navigateur.
Le \n c'est pour du format texte uniquement, sinon il faut répondre aux normes de l'html et utiliser les balises adequates.
Bon courage,
++
Cyrille

Poste le Monday 31 January 2005 20:09:31
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Pb de caractère ASCII 10 (nouvelle ligne) qui ne fonctionne pas.
Aide aux utilisateurs de la distribution Slackware et ses dérivées : Slax, Vector

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons