L'usage de <? à la place de <?php peut poser des problemes chez les
hébergeurs modernes (qui désactivent l'invocation de PHP sur <? car cela
plante les pages xhtml...).
Le petit script suivant convertis les fichiers une passe:
$ perl -pi -e's/(<\?)(\s)/<?php$2/g' *.html *.php *.php3
(il ne récusrse pas dans les répertoires, cependant)
J'ai fais un patch entre les deux versions:
$ diff -up spip-org spip > spip-patch
(je ne l'ai pas attaché, mais si on le veut, il ne fait que 2 ko gzippé,
me demander).
Et je me demandais si ceci ne pourrait pas etre intégré à la version de
devel actuelle: a priori ca ne change rien pour presque tt le monde et
peut en arranger certains.
La modification est mineure mais elle touche beaucoup de fichiers (pour
cause), ce qui la rends quand meme un peu délicate.
J'ai tenté de tester cette version modifiée, mais basée sur la version
actuelle dans le repository, ca marche avec pleins de warnings partout (je
pense que c'est du à l'état du code de devel, cependant, et non à la
modif).
L'usage de <? à la place de <?php peut poser des problemes chez les
hébergeurs modernes (qui désactivent l'invocation de PHP sur <? car
cela plante les pages xhtml...).
Avec XML en général ...
a priori ca ne change rien pour presque tt le monde et peut en
arranger certains.
Cela ne change rien pour personne ! '<?php' est le délimiteur
standard et est toujours compris, les autres sont facultatifs.
Donc il me semble nécessaire de faire la modif, comme je l'avais
signalé il y a quelques mois ...
Il faudrait aussi si possible qu'on puisse faire tourner SPIP avec
error_reporting à E_ALL, config standard sur tout serveur de dev, sans
avoir un warning à chaque ligne ...
Maintenant qu'il y a un CVS, ce devrait être plus simple.
L'usage de <? à la place de <?php peut poser des problemes chez les
hébergeurs modernes (qui désactivent l'invocation de PHP sur <? car cela
plante les pages xhtml...).
un exemple ?
Le petit script suivant convertis les fichiers une passe:
$ perl -pi -e's/(<\?)(\s)/<?php$2/g' *.html *.php *.php3
(il ne récusrse pas dans les répertoires, cependant)
Je n'ai rien contre; mais
1) Il faudrait faire gaffe à ne pas oublier d'éventuels "<"."?" qui peuvent
traîner ici ou là. (A vérifier).
2) Il faudra s'en souvenir pour la suite. les abonnés de la liste
spip-commit auront un devoir de vigilance !
L'usage de <? à la place de <?php peut poser des problemes chez les
hébergeurs modernes (qui désactivent l'invocation de PHP sur <? car cela
plante les pages xhtml...).
Le petit script suivant convertis les fichiers une passe:
$ perl -pi -e's/(<\?)(\s)/<?php$2/g' *.html *.php *.php3
Il faudrait etre sure que personne n'utilise ds SPIP le raccourci
<?=$variable?>
en place de
<?php echo $variable; ?>
Mais comme il me semble que ce raccourci n'est valide que pour PHP4, ca ne
devrait pas etre genant...
@ Yannick Patois <patois@calvix.org> :
> L'usage de <? à la place de <?php peut poser des problemes chez les
> hébergeurs modernes (qui désactivent l'invocation de PHP sur <? car cela
> plante les pages xhtml...).
un exemple ?
L'en-tete d'un fichier xhtml commence par:
<?xhtml ...
BOUM ! Si tu as un reglages PHP prehistorique ca plante (il tente
d'interpreter le <? ... comme du PHP), et si tu regles ton serveur de
maniere à supporter les fichiers xhtml, c'estspip qui ne tourne plus.
Donc incompatibilité totale entre les deux.
> Le petit script suivant convertis les fichiers une passe:
> $ perl -pi -e's/(<\?)(\s)/<?php$2/g' *.html *.php *.php3
> (il ne récusrse pas dans les répertoires, cependant)
Je n'ai rien contre; mais
1) Il faudrait faire gaffe à ne pas oublier d'éventuels "<"."?" qui peuvent
traîner ici ou là. (A vérifier).
C'est à dire ?
2) Il faudra s'en souvenir pour la suite. les abonnés de la liste
spip-commit auront un devoir de vigilance !
Il ne faut plus utiliser <? ce qui n'est pas trop difficile à se souvenir:)
C'est bien pour que vous la critiquiez.
Mais si vous la regardez a ttentivement, vous verez qu'elle
n'alterera pas un <?= ni un <?xml ni un <?php ni...
s/(<\?)(\s)/<?php$2/
Ne remplace que les caracteres < et ? (collés) suivit d'une espace
quelconque (' ' , tab ou retours chariot) par les caracteres '<?php'
suivit du meme espace (le $2 de l'expression).
Sauf si'l existe des '<? ' à ne pas remplacer, je crois que l'on peut
utiliser cette ligne de script sans risque.
Pour les developpeurs:
Je repete que je l'ai fais et que j'ai généré le patch, vous preferez que
je vous envoie le patch (au format diff), ou appliquer vous meme ce script
(ou un autre de votre choix ?).
L'en-tete d'un fichier xhtml commence par:
<?xhtml ...
BOUM ! Si tu as un reglages PHP prehistorique ca plante (il tente
d'interpreter le <? ... comme du PHP), et si tu regles ton serveur de
maniere à supporter les fichiers xhtml, c'estspip qui ne tourne plus.
Donc incompatibilité totale entre les deux.
Euh, l'interpréteur php ne passe a priori que sur les fichiers .php, pas sur
les .xml ? Enfin, admettons...
Mais ma question était : as-tu un exemple d'hébergeur "moderne" qui décide
de ne pas accepter les scripts en <?...?>
> 1) Il faudrait faire gaffe à ne pas oublier d'éventuels "<"."?" qui peuvent
> traîner ici ou là. (A vérifier).
C'est à dire ?
Quand spip doit écrire "<?" dans un fichier, on lui fait souvent écrire
"<"."?" de manière à ne pas troubler la colorisation syntaxique des éditeurs
de texte.
Euh, l'interpréteur php ne passe a priori que sur les fichiers .php, pas sur
les .xml ? Enfin, admettons...
Ton .php peut produire du XML au lieu de produire du HTML, si tel est ton besoin.
Dans ce cas, il faut bien qu'il commence par l'indication de version XML :
<?xml version="1.0" charset="iso-8859-1"?>
Evidemment, tu peux faire un echo(...) en PHP. Mais c'est tout de même moins
élégant et moins commode... D'autre part, tu peux avoir envie d'éditer ton
.php-produisant-du-xml avec un éditeur XML, auquel cas il ne faut pas que
des <? ... ?> perturbent l'éditeur (bon, on peut aussi espérer qu'il soit
écrit de façon à tolérer ce genre de choses).
Mais ma question était : as-tu un exemple d'hébergeur "moderne" qui décide
de ne pas accepter les scripts en <?...?>
Les hébergeurs mutualisés ne le font pas précisément parce que une grande
partie des programmeurs PHP sont habitués aux <? ... ?>. Mais sur un serveur
dédié sur lequel on a besoin de faire du XML, c'est possible.
Je repete que je l'ai fais et que j'ai généré le patch, vous preferez que
je vous envoie le patch (au format diff), ou appliquer vous meme ce script
(ou un autre de votre choix ?).