Je viens d'installer php 5.3.1 sur mon serveur linux et maintenant mon ancien travail que j'écrivais avec des tags ne fonctionne pas du tout.
S'il vous plaît aidez-moi ... Comment puis-je résoudre ce problème?
Pour activer les balises courtes, activez la directive short_open_tag
ini de l’une des manières suivantes (elles ne fonctionneront probablement pas toutes pour vous):
short_open_tag = On
dans votre php.ini (la méthode recommandée);ini_set("short_open_tag", 1);
dans votre code;ajoutez la ligne suivante à votre fichier .htaccess:
php_value short_open_tag 1
Plus d'explication:
Il n'est pas recommandé d'utiliser des balises courtes (<? ?>
). Vous devriez utiliser les balises pleine longueur (<?php ?>
). La syntaxe abrégée est obsolète et si vous voulez rendre votre application portable, il est possible que les balises ouvertes courtes ne sont pas autorisées sur un autre serveur et, par conséquent, votre application sera interrompue.
D'autre part, le raccourci d'écho <?= $var ?>
est activé par défaut depuis PHP 5.4 indépendamment des paramètres de php.ini et ne sera pas obsolète. Vous pouvez l'utiliser au lieu de <?php echo $var; ?>
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 balises ouvertes courtes:
Cette directive détermine si PHP reconnaîtra ou non le code entre
Les balises<?
et?>
en tant que source PHP qui doivent être traitées comme telles. C'était
recommandé depuis plusieurs années de ne pas utiliser la balise courte "raccourci" et
utilisez plutôt la combinaison complète de balises<?php
et?>
. Avec l'utilisation répandue de XML et l’utilisation de ces balises par d’autres langues, le serveur peut devenir facilement
confus et finissent par analyser le mauvais code dans le mauvais contexte. Mais parce que
ce raccourci est une caractéristique depuis si longtemps qu'il est encore en cours
prise en charge pour la compatibilité ascendante, mais nous vous recommandons de ne pas les utiliser.
Notez également cette RFC refusée concernant les balises ouvertes courtes pour les modèles: http://wiki.php.net/rfc/shortags
Il semblerait que short_open_tags ait la valeur "Off" dans votre fichier php.ini . Essayez de la configurer "On" et redémarrez Apache.
Vous devrez probablement activer les balises courtes dans votre fichier de configuration PHP. Sans connaître votre configuration, je ne saurais dire où vous la trouverez, mais vous cherchez php.ini (probablement quelque part comme /etc/php.ini
).
Ici, le paramètre que vous recherchez est short_open_tags
. Voir ici pour tous les principaux paramètres de configuration de PHP. Toutefois, comme d'autres l'ont mentionné, l'utilisation de balises courtes pourrait ne pas être la meilleure stratégie. Ici est une bonne discussion des raisons (pour et contre).
peut-être que votre nouvelle configuration n’allocalise pas les tags courts. Il suffit d'utiliser <?php ?>
. C'est mieux de toute façon.
Si vous voulez toujours les utiliser, vous pouvez utiliser la directive short_open_tag
. Gardez également à l'esprit que cela ne fonctionnera pas si vous avez désactivé les balises courtes.
La raison principale en est que vous pouvez utiliser des balises XML inline.
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'un tag
Il vaut mieux ne pas utiliser cette fonctionnalité. Par exemple, XML utilise la même méthode pour ouvrir l’en-tête dans les documents.