Je viens de rejoindre une équipe de développement sur un site en php. J'ai donc récupérer leur code, et ces boulets ont eu la bonne idée d'utiliser les balises "<?" au lieu de "<?php", du coup, c'est le drame, le site marche pas du tout en local avec mon Wamp.
Evidemment, premier réflexe, je vais dans phpsetting et je coche "short_open_tag", ensuite je vais vérifier dans mon php.ini que j'ai bien "short_open_tag = On", ce qui est bien le cas. Je redémarre mon server, mais non, les balises "<?" sont toujours mal interprétées.
J'ai essayé avec 3 versions différences de Wamp (dont Wamp Server 2) mais rien n'y fait.
J'ai aussi enclenché "php_gd2" et j'utilise "eAccelerator" (au cas où ca pourrait avoir un lien, mais j'y crois pas trop).
Personne aurait une idée a part leur dire "Serait temps de changer vos "<?" par des "<?php" ??
Celui qu'il faut modifier est : "wamp\bin\apache\apache2.2.8\bin\php.ini"
Le fichier "wamp\bin\php\php5.2.6\php.ini" sert pour les lignes de commande (CLI)
La modification a-t-elle bien été prise en compte dans le fichier susmentionné ?
Néanmoins, avec les outils idoines, c'est-à-dire un éditeur de texte comme Notepad++ ou UltraEdit, remplacer "<?" par "<?php", même dans 4000 fichiers, même avec 250 occurrences dans chaque fichier ne prend pas plus de 2 minutes.
De toute manière il vaut mieux utiliser <?php car ShortOpenTag a disparu dans php 5.4 Donc si vous voulez maintenir à jour PHP, et pour des raison de compatibilité et de portabilité, il est toujours utile de mettre <?php
Hum, merci pour l'info. Malheureusement j'utilise un script codé par un autre, avec des centaines de fichiers, et je me vois mal corriger tout ça à la main (je ne sais pas faire un batch)
Effectuer un remplacement multicritère/multifichiers, par exemple dans 8978 fichiers php, ça prend vingt secondes. Encore faut-il le faire "comme il faut", car, pour peu que le programmeur ait, de temps en temps, utilisé les balises normales, si on ne procède pas par ordre, ça peut créer des problèmes :
- Remplacer, dans tous les fichiers, toutes les occurrences de "<?php" par "<?" - Remplacer, dans tous les fichiers, toutes les occurrences de "<?" par "<?php"
Pas besoin de batch, avec un éditeur de texte digne de ce nom (Y'en a des gratuits), ça prend deux fois vingt secondes.
dans le fichier\wamp\bin\apache\Apache2.4.4\bin\php.ini cf. ligne 214 :
" ; This directive determines whether or not PHP will recognize code between ; <? and ?> tags as PHP source which should be processed as such. It's been ; recommended for several years that you not use the short tag "short cut" and ; instead to use the full <?php and ?> tag combination. With the wide spread use ; of XML and use of these tags by other languages, the server can become easily ; confused and end up parsing the wrong code in the wrong context. But because ; this short cut has been a feature for such a long time, it's currently still ; supported for backwards compatibility, but we recommend you don't use them. ; Default Value: On ; Development Value: Off ; Production Value: Off ; [php.net] short_open_tag = On
; "
Mettre short_open_tag = On au lieu de short_open_tag = Off
Sauvegarder
lancer "D:\wamp\bin\apache\Apache2.4.4\bin\ApacheMonitor.exe" en bas à droite de l’écran Windows cliquer sur l’icône (un cercle noir avec une flèche verte) et sélectionner le serveur, cliquer sur Redémarrer.