un 'blanc' avant un include

un 'blanc' avant un include - PHP - Programmation

Marsh Posté le 12-02-2011 à 20:40:01    

bonjour la communauté,
 
un ptit problème que j'ai pour la 1ère fois ; j'ai un include comme suit qui récupère une partie de ma page :
 
<?php include utf8_decode($page);?>
 
il va donc chercher un fichier php, pas de soucis la recup est bonne. mais juste avant l'affichage de ce qui doit être récupérer, je trouve un trouve un espace vide de la taille d'un caractère qui forcement n'est pas voulu. Ca a la taille d'une balise <p>, il y rien dedans, ça me repousse tout les éléments qui suivent comme une ligne de texte normale et dans firebug, dans l'inspecteur html, il y a aussi espace (une ligne sans rien)...
Et même s'il n'y a rien, firebug (avec click droit sur l'élément ; la ligne vide) m'autorise à le supprimer et tout redeviens cool.
 
Mes fichiers sont tous les 2 en UTF8, et avant de faire mon include (cad quand tout était sur la même page il n'y avait pas de problème);
 
help wanted. merci


---------------
Aliens Vs Predator c'est avant tout l'histoire d'une rencontre.
Reply

Marsh Posté le 12-02-2011 à 20:40:01   

Reply

Marsh Posté le 12-02-2011 à 21:38:05    

faut encoder les fichiers en UTF8 sans BOM.
En fait ce n'est pas un espace, mais un vrai caractère que tu rencontre mais non affiché :D
 
tu utilises quoi comme editeur ?  
et puis il sert à rien ton utf8_decode après ton include.


---------------
Blablaté par Harko
Reply

Marsh Posté le 12-02-2011 à 22:08:39    

dac, j vais essayer ça demain.
 
pour le decode, tu veux dire qu'avec des fichiers en utf8 sans BOM dès le départ, il est inutile? ou dans tous les cas?


---------------
Aliens Vs Predator c'est avant tout l'histoire d'une rencontre.
Reply

Marsh Posté le 12-02-2011 à 22:19:51    

tu fais un UTF8_Decode sur le nom du fichier, ça serait après l'include qu'il faudrait le faire. Mais ce n'est pas possible puisque include est une fonction particulière qui ne retourne pas du texte mais inclus directement un fichier.
Et puis c'est inutile de toute facon.


---------------
Blablaté par Harko
Reply

Marsh Posté le 13-02-2011 à 10:53:13    

Sur le site officiel, http://php.net/manual/fr/function.include.php, parmi les commentaires, se trouve celui-ci :

Citation :

Anonymous 11-Nov-2009 07:35
I was having problems when HTTP headers were being sent before I was ready.  I discovered that this happened only when I was including a file at the top of my script.  Since my included file only contained PHP with no whitespace outside the tags, this behavior seemed incorrect.
 
The editor I was using was saving the files in UTF8 format, sometimes including the redundant Byte Order Mark at the beginning of the file.  Any Unicode-aware editor would implicitly hide the presence of the BOM from the user, making it hard to notice the problem.  However, by using a hex editor I was able to see and remove the three bytes, restoring normal behavior.
 
Moral:  Prevent your editor from adding an invisible Unicode Byte Order Mark to the beginning of your source code!

Si cela ne marche pas, ou si ce n'est pas pratique, on peut essayer autre chose à la place du include :

<?php echo file_get_contents($page);?>

Parmi les options de file_get_contents, il y en a une pour choisir une position de départ (offset) qu'il faut peut-être utiliser. Voir les options de http://fr2.php.net/manual/fr/funct [...] ntents.php

Reply

Marsh Posté le 13-02-2011 à 16:27:43    

Merci à vous 2.
Ca fonctionne en encodant la page sans BOM. J vais me renseigner un peu sur le sujet.
Pour information, le decode aurait pu être utile avec file_get_contents s'il récupère le contenu et non le fichier?
@gatsu : Et j'utilise Notepad  
: )


---------------
Aliens Vs Predator c'est avant tout l'histoire d'une rencontre.
Reply

Marsh Posté le 13-02-2011 à 17:36:19    

notepad++ :)


---------------
Blablaté par Harko
Reply

Sujets relatifs:

Leave a Replay

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