Je viens d'installer php 5.3.1 sur mon serveur linux et maintenant mon ancien travail que j'avais l'habitude d'écrire avec des balises ne fonctionne plus du tout.
Aidez-moi, s'il vous plaît. Comment puis-je résoudre ce problème ?
Je viens d'installer php 5.3.1 sur mon serveur linux et maintenant mon ancien travail que j'avais l'habitude d'écrire avec des balises ne fonctionne plus du tout.
Aidez-moi, s'il vous plaît. Comment puis-je résoudre ce problème ?
Il n'est pas recommandé d'utiliser des balises courtes ( <? ?>
). Vous devez utiliser les balises pleine longueur ( <?php ?>
). Si vous voulez rendre votre application portable, c'est posible que les balises ouvertes courtes ne sont pas autorisées sur un autre serveur et que, par conséquent, votre application ne fonctionnera pas.
D'autre part , l'abréviation de l'écho <?= $var ?>
es toujours disponible indépendamment des paramètres php.ini et ne sera pas déprécié. Vous pouvez l'utiliser à la place de <?php echo $var; ?>
En dernier recours, pour activer les balises courtes, activez l'option short_open_tag
ini de l'une des manières suivantes (toutes ne fonctionneront probablement pas pour vous) :
définir la directive short_open_tag = On
dans votre php.ini ( la voie recommandée ) ;
appel ini_set("short_open_tag", 1);
dans votre code ;
ajoutez la ligne suivante à votre fichier .htaccess :
php_value short_open_tag 1
Et pour le comportement par défaut :
------------------------------------------------
php.ini values : short_open_tag
------------------------------------------------
PHP 4, 5_0
* Default behaviour : on
* php.ini-dist : on
* php.ini-recommended : on
PHP 5_1, 5_2:
* Default behaviour : on
* php.ini-dist : on
* php.ini-recommended : off
PHP 5_3:
* Default behaviour : on
* php.ini-development : off
* php.ini-production : off
Et la raison de décourager les étiquettes ouvertes courtes :
Cette directive détermine si PHP reconnaîtra ou non le code entre
<?
y?>
comme une source PHP qui doit être traitée comme telle. Il a été
Depuis plusieurs années, il est recommandé de ne pas utiliser l'abréviation "short cut" et "raccourci".
au lieu d'utiliser l'intégralité du<?php
y?>
combinaison d'étiquettes. Avec la généralisation de l'utilisation XML et l'utilisation de ces balises par d'autres langages, le serveur peut devenir facilement
et finissent par analyser le mauvais code dans le mauvais contexte. Mais parce que
ce raccourci a été mis en place il y a si longtemps qu'il est toujours d'actualité.
sont pris en charge pour des raisons de compatibilité ascendante, mais nous vous recommandons de ne pas les utiliser.
Notez également ce RFC décliné sur les balises ouvertes courtes pour les modèles : http://wiki.php.net/rfc/shortags
Vous devez probablement activer les balises courtes dans votre fichier de configuration PHP. Sans connaître votre configuration, je ne pourrais pas dire où vous le trouverez, mais vous devez chercher dans php.ini (probablement quelque part comme /etc/php.ini
).
Dans ce document, le paramètre recherché est short_open_tags
. Voir aquí pour tous les paramètres de configuration de base de PHP. Cependant, comme d'autres l'ont mentionné, l'utilisation de balises courtes n'est peut-être pas la meilleure stratégie. Ici est une bonne discussion des raisons (pour et contre).
Peut-être que votre nouvelle configuration n'autorise pas les balises courtes. Utilisez simplement <?php ?>
. C'est de toute façon une meilleure pratique.
Si vous souhaitez toujours les utiliser, vous pouvez short_open_tag
directive. N'oubliez pas non plus que cela ne fonctionnera pas si vous avez désactivé les balises courtes.
La raison principale est que vous pouvez utiliser des balises Xml en ligne.
Si vous utilisez wamp ou xamp, il est très facile de les activer. Il suffit de cliquer sur l'icône->serveur php->réglage->autoriser l'ouverture d'une balise courte.
Il est préférable de ne pas utiliser cette fonctionnalité. Par exemple, xml utilise la même méthode pour ouvrir l'en-tête dans les documents.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.