Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/01/2011, 12h55   #1
Invité de passage
 
Inscription : septembre 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 6
Points : 3
Points : 3
Par défaut Pb configuration / question d'un nul

Bonjour à tous
Je débute en php (mais pas en dev), pardonnez donc mes lacunes.
Je dois avoir un pb de configuration (wampserver_2) enfin je vois pas autre chose.

Quand j'utilise le truc basic de basic :

echo "Cet echo() se\nrépartit sur plusieurs lignes. Il affiche aussi les\nnouvelles lignes";

mis dans un .php sur la machine serveur
ouvert par ie8

ben celà ne le fait pas !!! Tout est affiché sur une ligne...
je suis obligé de remplacer les \n par les <br /> (et la c'est normal que ca marche) mais ca ne me plait pas du tout...

pourquoi ?

merci.
philou06000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 13h06   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Hello

C'est parce que par défaut Apache est configuré pour envoyer du HTML au navigateur donc produire la ligne:
Code :
1
2
 
Une ligne de texte
Est interprété comme cela par le navigateur:
Code :
1
2
3
4
5
6
7
 
<html>
<head></head>
<body>
Une ligne de texte
</body>
</html>
Pour changer ce comportement, tu peux spécifier quels headers HTTP utiliser, si tu veux envoyer du texte, utilise:
Code :
1
2
3
 
header("Content-Type: text/plain");
echo "Une ligne\nSur plusieurs lignes";
Note également que pour que le caractère \n soit interprété, il faut que ta chaine soit définie avec des double-quotes et pas des simple.

Note également que tu peux envoyer n'importe quel type de header:
Code :
1
2
3
4
5
 
header('Content-Type: application/csv');
header('Content-Type: application/json');
header('Content-Type: image/jpeg');
etc.
La liste non exhaustive est dispo sur le site de PHP :http://php.net/manual/en/function.header.php
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 15h43   #3
Invité de passage
 
Inscription : septembre 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 6
Points : 3
Points : 3
Par défaut ...

merci, mais

le Code :

Code :
1
2
header("Content-Type: text/plain");
echo "Une ligne\nSur plusieurs lignes";
ne marche pas chez moi...

Il doit y avoir autre chose, quand je regarde la source dans le navigateur il n'y a aucune balise html, j'ai deux lignes, qui sont fusionné par ie.

Je crois que je vais potasser un peu tout ca...

Merci
philou06000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 15h54   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Visiblement IE n'est même pas capable de comprendre text/plain et invite à télécharger le contenu produit

Enfin, Firefox lui sait le faire et affiche les résultat attendus.

Je te remets le bout de code au cazou:
Code :
1
2
3
4
 
<?php
header("Content-Type: text/plain");
echo "Une ligne\nSur plusieurs lignes";
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 16h26   #5
Invité de passage
 
Inscription : septembre 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 6
Points : 3
Points : 3
Par défaut ...

tout à fait thierry...

Pourtant des exemples de codes php fonctionnes...comme dit, je vais creuser afin de n'etre lié a aucun nagivateur...

Merci
philou06000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 18h02   #6
Futur Membre du Club
 
Inscription : octobre 2009
Messages : 17
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 17
Points : 15
Points : 15
Tu peux éventuellement utiliser la fonction nl2br, qui remplace tes \n par des <br />. Mais cela ne reste qu'une solution partielle.

Code :
echo nl2br("Une ligne\nSur plusieurs lignes");
Myst. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 10h23   #7
Invité de passage
 
Inscription : septembre 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 6
Points : 3
Points : 3
Citation:
Envoyé par Myst. Voir le message
Tu peux éventuellement utiliser la fonction nl2br, qui remplace tes \n par des <br />. Mais cela ne reste qu'une solution partielle.

Code :
echo nl2br("Une ligne\nSur plusieurs lignes");
Et donc a creer ma fonction EchoBr, pourquoi pas, mais je crois que je vais tout reprendre à la base, il y a un truc qui m'a echappé.

Merci à Vous
philou06000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 10h16   #8
Invité de passage
 
Inscription : septembre 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 6
Points : 3
Points : 3
Citation:
Envoyé par philou06000 Voir le message
Et donc a creer ma fonction EchoBr, pourquoi pas, mais je crois que je vais tout reprendre à la base, il y a un truc qui m'a echappé.

Merci à Vous
Bon...j'ai bien tout relu, et...le problème vient...des exemples, tout simplement.

le \n n'est pas du code html tout simplement, ie n'en a donc cure.

De plus comme chez bilou, dans ses exemples de codes, ou les variables ne sont jamais libérées, ben dans certains exemples php c'est pareil !!! Pour démarrer c'est génial, on s'appuie sur des fondations fausses.

Donc...PB...Résolu...
philou06000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h29.


 
 
 
 
Partenaires

Hébergement Web