8791 sujets

Développement web côté serveur, CMS

Salut,

Voici un truc tres bizarre. Si je fais :


print "<h4>truc</h4>"; 


.. Ca n'affiche pas la meme chose que si je fais :


include ("affichage.php");


avec comme contenu de affichage.php :

print "<h4>truc</h4>";


Dans le second cas le browser saute une ligne, et affiche donc la meme chose mais une ligne plus bas. Notez que si on enleve les <h4> et </h4> ce phenomene disparait.

1) A quoi est-ce du ?
2) Comment eviter ce saut de ligne dans le cas de l'include ?
Modifié par apericube (20 Sep 2009 - 20:07)
tu peux nous transmettre le code intégral de ton include? ou au moins ce qu'il y a avant le h4^^ sauts de lignes compris
Bah en fait c'est le code integral ! Je voulais mettre les balises php pour bien montrer que j'ai rien d'autre dans mon code mais ca passait pas bien a l'affichage.

J'ajoute que ca fait ca avec n'importe quel browser (en tout cas IE FF et Chrome).
Modifié par apericube (20 Sep 2009 - 20:23)
Salut,

Smoke a écrit :
tu peux nous transmettre le code intégral
Pour préciser encore :
* Montre-nous le code qui contient l'include.
* Montre-nous le code qui est inclus.

Car il n'y a aucune raison d'avoir une différence puisqu'un include ne fait qu'une sorte de copier / coller d'un code externe.
Euh j'ai pas plus de code a vous montrer j'ai deja tout pasté Smiley ohwell J'ai un fichier affichage.php et un fichier index.php.

affichage.php contient :

print "<h4>truc</h4>";


index.php contient :

include ("affichage.php");


Si j'ouvre index.php, ca m'affiche "truc" apres un saut de ligne (dont la cause mysterieuse est l'objet de ce post). Si j'efface le contenu de index.php (je retire l'include donc), et qu'a la place je met simplement dans mon index.php :

print "<h4>truc</h4>";


Alors ca m'affiche "truc", sans saut de ligne. La je peux pas etre plus precis ! A part ces trois lignes de code mes fichiers sont vides.

J'insiste sur le fait que si je met pas de balises <h4>, l'affichage est identique dans les deux cas. Pourquoi diable des balises <h> provoqueraient un saut de ligne avec un include ? O_o
Modifié par apericube (20 Sep 2009 - 21:46)
Administrateur
Bonjour,

je parie sur un bug UTF-8 de derrière les fagots.

Ouvre tes deux fichiers avec PSPad, vérifie en bas que c'est bien de l'UTF-8 et enregistre-les tous les deux. Bug disparu ?
Si non, voudrais-tu bien tester:
- une balise ouvrante <h4> dans le fichier parent avec un bout de texte puis l'inclusion en se déboruillant pour n'avoir aucun espace/tab/retour-chariot
- juste un autre bout de texte et la balise fermante </h4> dans le fichier inclus (idem pas de whitespace)
- que donnent le code source et l'affichage ? Copie le code source dans le validateur W3C à l'onglet Direct Input et dis-nous ce qu'il te hurle à l'oreille Smiley cligne

PSPad c'est pas Notepad++, c'est pas Intype, c'est pas ... : lui je l'ai jamais mis en défaut Smiley murf
Modifié par Felipe (20 Sep 2009 - 22:12)
Merci Felipe! C'etait bien un bug UTF-8 de derrière les fagots. Bon sang ce que je peux detester ces histoires d'encodage de caracteres, j'ai perdu beaucoup de cheveux a cause de ca et je vois que ca continue!

Une question toutefois : dans les preferences de Notepad++ j'ai encoding: UTF-8. Donc pourquoi ca marche bien avec PSPad et pas avec Notepad++ ? Comment faire pour que ca marche avec Notepad++ aussi ?
J'ai rencontré le même problème aujourd'hui.

Un autre merci à Felipe pour sa réponse !

Par contre, je prolonge la question finale de apericube sur le pourquoi du comment avec Notepad++ ...
D'autant que si, après avoir modifier l'encodage dans PSPad, l'on retourne dans Notepad++, il affiche un encodage ANSI ... très étrange !

Si quelqu'un a des éléments de réponse Smiley biggrin ils seront bienvenus Smiley murf
Salut,

Parce que dans Notepad++ il faut choisir l'encodage UTF-8 (sans BOM) et non UTF-8 tout court.