Conversion de scripts PHP utilisant les « short-tags »

Si vous avez gardé de mauvaises habitudes ou que vous avez récupéré de vieux scripts PHP qui utilisaient encore les balises courtes ou « short-tags » (<? ?> au lieu de <?php ?>) qui sont désactivées par défaut dans les versions actuelles de PHP, vous pouvez utiliser le script suivant (shorttags.sh) au lieu de corriger tous les fichiers manuellement :

#!/bin/sh
find "$@" -name "*.php" -exec perl -i -wpe 's/<?=/<?php echo /g' {} ; 
-exec perl -i -wpe 's/<?(?!php|xml)/<?php /g' {} ;

Une fois le script récupéré, rendez-le exécutable :

chmod +x shorttags.sh

Puis utilisez-le comme cela (après avoir éventuellement fait une sauvegarde de vos précieux scripts) :

./shorttags.sh /chemin/vers/vos/fichiers/php/

Notez que vous pouvez indiquer plusieurs répertoires à la suite les uns des autres.

N’hésitez pas à me faire part de vos améliorations !

Mise à jour 24 juin 2009 : Merci à John Lenton pour son commentaire, j’ai mis à jour le script.

7 réflexions sur « Conversion de scripts PHP utilisant les « short-tags » »

  1. As it stands, you can’t call it on a directory with spaces. For that, double-quote the $1. Further, Change the $1 for a « $@ » (with the quotes) to support being called with multiple (possible special-character-containing) directories as argument.
    Lastly, change #!/bin/bash to just #!/bin/sh; you’re not doing anything bash-specific, and /bin/sh is often a faster bourne shell (such as dash).

    I promise I tried writing this comment in French…

  2. salut , jaimerais savoir comment faire pour installer ton programme et avec quoi l ouvrir pcq y me demande avec quelle programme l ouvrir. et jaimerais savoir comment faire pour le faire fonctionné . merci

  3. ok jai reussis a ouvrir avec note pad pour prendre le scritp et tu l avait marquer en + en haut 😛 mais ou je le met le script a quelle place l’insert t-ont

    et ceci : chmod +x shorttags.sh que cela signifie , ont fait un dossiers ou un fichier appeller tel nom ?

    et cela : ./shorttags.sh /chemin/vers/vos/fichiers/php/ ou inseret t- ont ce fichier

    jme suis achete run site web avec l ancienne methode pi meton sa marche pas n importe quelle hebergeur.
    peut tu me dire comment m y prendre a effectuer ton script. sa serais tres appreciable.

    merci

    1. @martin,

      Salut et merci pour tes commentaires.

      Ce script est un script shell qui fait appel à un script perl. Avec quelques (beaucoup ?) efforts, il devrait être possible de le faire fonctionner sous Windows, mais je te recommande de l’utiliser sous Linux. Tu peux par exemple l’utiliser sous Ubuntu Linux (téléchargeable sur http://ubuntu.com ou http://ubuntu-fr.org si tu ne comprends pas du tout l’anglais). Il te suffit alors de :
      1) enregistrer le script quelque part (par exemple sur le bureau)
      2) application/accessoires/terminal, puis saisir les commandes suivantes (il faut bien sûr remplacer /chemin/vers/vos/fichiers/php par le répertoire où se trouvent les fichiers, par exemple ./php si les fichiers sont sur le bureau dans un dossier qui s’appelle php):
      3) cd Bureau
      4) chmod +x shorttags.sh
      5) ./shorttags.sh /chemin/vers/vos/fichiers/php/

      J’en profite pour faire un petit peu de pub pour ma société Net Oxygen 😉 qui effectue ce genre de conversions pour ses clients hébergés lorsque c’est nécessaire.

      Je reste à ta disposition si tu as d’autres questions sur ce script ou sur Linux.

Répondre à John Lenton Annuler la réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *