Les short open tags

    09:13 14 11 2005

Une des options disponible dans le ficher de configuration de PHP, bien connu sous le nom de php.ini, est la possibilité d’activer (ou de desactiver) les short open tags :

short_open_tags = On (ou Off)

Les shorts open tags ont au départ été prévus…bah pour pas grand chose, tout simplement ouvrir son code PHP avec la balise <? au lieu d’utiliser la balise <?php. En soi, on pourrait se dire que cela est pratique, mais dans les faits l’utilisation des short open tags pose des problèmes.

En effet, les normes évoluent, le HTML est mort, vive le XHTML! Et avec cette nouvelle norme basée sur du XML, sont apparues de nouvelles balises. Il faudra nottament maintenant utiliser la balise <?xml version= »1.0″ …. pour ouvrir son document. Et c’est là que les short open tags viennent poser problème.
Avec les short open tags activés, un telle balise va être interprétée comme une ouverture de PHP, le code ‘xml version= »1.0″‘ va donc être parsé et générer une « syntax error ». Il ne sera donc pas possible de faire tourner des scripts au format XHTML sur un serveur ayant les short_open_tags activés.

La solution pour un code compatible va consister à utiliser les open tags traditionnels <?php et d’intégrer vos balises d’ouverture de fichier XHTML directement dans votre PHP sous la forme d’un echo :

<?php
echo ‘<?xml version= »1.0″ …..>’;
?>

De cette façon, votre code pourra tourner quelque soit la configuration de votre serveur :-)

J’en profite pour signaler que la dernière version de WAMP5 (1.4.5) est passée en short_open_tags à Off, ce qui a entrainé de nombreux posts sur le forum du site.


Actions

Informations

8 réponses à “Les short open tags”

16 11 2005
18 01 2009
[newbie] PHP 5 | hilpers (14:07:44) :

[...] Beaucoup de pages expliquent cela très bien, en voici une au hasard http://blog.wampserver.com/index.php…ort-open-tags/ [...]

18 02 2009
Greg (02:05:37) :

Ca marche aussi comme ca:

<xml version= »1.0″ encoding= »…

18 02 2009
Greg (02:08:06) :

Le code ne s’affiche pas, ca devrait être :
<<??>xml …

–plus petit– –plus petit– –point d’interro.– –point d’interro.– –plus grand–

11 10 2011
lordfpx (12:30:38) :

L’autre intérêt de Short open tags est de pouvoir écrire au lieu de . Cela fait un code plus lisible.

11 10 2011
lordfpx (12:31:47) :

L’autre intérêt de Short open tags est de pouvoir écrire au lieu de . Cela fait un code plus lisible.

Désolé pour le doublon :-p.

11 10 2011
lordfpx (12:32:24) :

et mince, tant pis ça ne marche pas.

3 03 2012
Clement (21:22:20) :

ceci marche que short_open_tags soit activé ou non :
<<?php?>?xml version=…>