Chi usa PHP si sarà spesso imbattutto nella diatriba Short Open Tag si o no (da <? a <?PHP), spesso trovandosi a combattere con codice di programmazione scritto da altri e con la difficoltà nel poterlo utilizzare.
Per chi non lo sapesse, si sta parlando dei tag di apertura e chiusura di un codice scritto in linguaggio PHP, racchiuso quindi tra <?php e ?>, gli short tag sono la forma abbreviata, indicata con <? e ?>, ed il cui utilizzo è sconsigliato poichè per il corretto funzionamento è necessario che la direttiva short_open_tag sia esplicitamente abilitata.
Può così capitare che vi sia la necessità, per una migrazione di server, un aggiornamento di PHP, o solo per comodità, praticità e leggibilità che si voglia passare un codice da short tag in full tag, compito noioso e tedioso se fatto manualmente, ecco quindi un rapido metodo su come convertire facilmente in modo ricorsivo tutti gli short tag. Per farlo vi basterà usare la bash e scrivere a riga di comando questa serie di comandi con l’espressione regolare (regex) appropriata:
find . -name "*.php" -print0 | xargs -0 perl -pi -e 's/<\?(?!php|=|xml|mso| )/<\?php /g'
oppure nel qual caso vi sia uno spazio dopo il <? potrete usare la seguente serie di comandi:
find . -name "*.php" -print0 | xargs -0 perl -pi -e 's/<\? /<\?php /g'
A questo punto avrete i vostri file pronti per l’utilizzo.