36 votes

<? ?> les balises ne fonctionnent pas dans php 5.3.1

Je viens d'installer php 5.3.1 sur mon serveur linux et maintenant mon ancien travail que j'écrivais avec des balises ne fonctionne pas du tout ..

S'il vous plaît, aidez-moi. Comment puis-je résoudre ce problème ??

73voto

Felix Kling Points 247451

Pour activer les balises courtes, de permettre à l' short_open_tag ini directive de l'une des manières suivantes (probablement pas tous d'entre eux vont travailler pour vous):

  • définissez la directive short_open_tag = On dans votre php.ini (recommandé);
  • appelez 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:

Ce n'est pas vous recommandons d'utiliser les balises courtes (<? ?>). Vous devez utiliser toute la longueur de balises (<?php ?>). La syntaxe courte est obsolète, et si vous voulez faire de votre application portable, il est possible que de courte ouvrir les balises ne sont pas autorisés sur un autre serveur et donc votre demande de casser.

D'autre part, l'écho de sténographie <?= $var ?> est activé par défaut depuis PHP 5.4 , indépendamment de php.paramètres 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 short open tags:

Cette directive détermine si oui ou non PHP reconnaîtra code entre
<? et ?> balises comme source PHP qui doit être traité comme tel. Il a été
recommandé pour plusieurs années de ne pas utiliser la balise courte "short cut" et
au lieu d'utiliser le plein <?php et ?> combinaison de balises. Avec l'utilisation très répandue de XML et l'utilisation de ces balises par d'autres langues, le serveur peut devenir facilement
confus et à la fin de l'analyse du mauvais code dans le mauvais contexte. Mais parce que
cette coupe courte a été une caractéristique pour un temps long, il est actuellement encore
pris en charge pour assurer la compatibilité ascendante, mais nous vous recommandons de ne pas les utiliser.

Notez également cette baisse à la RFC sur court balises ouvertes pour les modèles: http://wiki.php.net/rfc/shortags

10voto

Yo-L Points 347

Il semble que short_open_tags soit réglé sur "Off" dans votre fichier php.ini. Essayez de le régler sur "On" et redémarrez apache.

1voto

Mark Embling Points 7337

Vous avez probablement besoin de tourner sur les balises courtes dans votre fichier de configuration de PHP. Sans connaître votre configuration, je ne pouvais pas dire où tu l'avais trouvé, mais vous êtes à la recherche pour php.ini (probablement quelque part comme /etc/php.ini).

Là, le réglage que vous êtes après est - short_open_tags. Voir ici pour l'ensemble des paramètres de configuration de PHP. Cependant, comme d'autres l'ont mentionné, à l'aide de balises courtes pourrait ne pas être la meilleure stratégie. Ici est une bonne discussion sur les raisons (pour et contre).

0voto

Sinan Points 2095

peut-être que votre nouvelle configuration ne permet pas de balises courtes. Utilisez simplement <?php ?> . C'est de toute façon une meilleure pratique.

Si vous souhaitez 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 en ligne.

0voto

Osin Toumani Points 309

Si vous utilisez wamp ou xamp, il est très facile de les activer. Cliquez simplement sur l'icône-> serveur php-> paramètre-> autoriser l'ouverture de la balise courte

Il vaut mieux ne pas utiliser cette fonctionnalité. Par exemple, xml utilise la même manière pour ouvrir l'en-tête dans les documents.

Prograide.com

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.

Powered by:

X