JeuWeb - Crée ton jeu par navigateur
php et balise de fermeture - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : php et balise de fermeture (/showthread.php?tid=2366)



php et balise de fermeture - Air - 20-07-2018

Salut,

Je m’intéresse actuellement au convention de développement et de codage et je viens de lire sur plusieurs sites :
"Les balises courtes d'ouvertures ("<?")ne sont pas autorisées. Pour les fichiers ne contenant que du code PHP, la balise de fermeture doit toujours être omise..... Ne pas l'inclure permet de se prémunir les problèmes liés à l'injection accidentelle d'espaces blancs dans la sortie."

Respectez-vous ce principe ?
Je ne vois pas très bien l'impact de l'injection d'espace blancs dans la sortie.

Merci pour votre avis.


RE: php et balise de fermeture - Xenos - 20-07-2018

Salut,

Oui, et elles sont justifiées:

- <? est une "processing instruction" de HTML, donc, utiliser ces balises courtes peut interférer avec d'autres interpréteurs, ou avec l'insertion de processing instructions XML (ie: si tu veux faire un SVG, tu ne pas; sauf à faire un echo '<?xml...'; mais l'IDE peut alors être perdu)

- Si une balise de fermeture est présente, alors on est obligé de laisser traîner des espaces/sauts de ligne en fin de fichier (les fichiers texte par exemple doivent se finir par un "\n" pour que certains outils en ligne de commande de Linux les considèrent comme du texte, s'il n'y a pas ce \n final, ils peuvent sauter la dernière ligne du fichier, donc, impossible de finir le fichier par un ?> tout seul vu qu'un \n doit forcément le suivre). Or, ce saut de ligne n'étant pas dans une balise PHP, le serveur web (Apache) risque de le retourner directement. Cela peut générer des soucis quand vient le temps d'envoyer un header HTTP (ie: le parser PHP s'arrête sur ?>, Apache envoie au navigateur le saut de ligne qui est après, et si un appel à header() est ensuite fait, alors PHP plantera car le corps de la réponse est déjà parti)


RE: php et balise de fermeture - niahoo - 20-07-2018

Citation :Respectez-vous ce principe ?

Ouaip, ça évite pas mal d'emmerdes.


RE: php et balise de fermeture - Ter Rowan - 20-07-2018

Je dirais meme plus

J ai voulu respecter le sacro saint "si tu ouvres une balise, tu la fermes après"
Et ca pose effectivement des problèmes

J ai pas eu des plantages mais juste des espaces qui se baladent, donc qui cassent tout ton beau html / css
Donc au final je ne ferme plus la dernière balise php


RE: php et balise de fermeture - Air - 20-07-2018

merci pour vos réponses.
ça me paraissait tellement logique de fermer toutes balises ouverte.