Массовая конвертация коротких тегов PHP в полные

Быстрый способ произвести замену open short tags на полноценные во всем проекте.

Простой способ добиться этого в linux заключается в использовании oneliner комбинации команд find и sed.

find -type f -name '*.php' -exec sed -i -e 's/<?=\s*/<?php echo /' -e 's/<?\s*\/\*/<?php \/*/' -e 's/<?\s*\/\//<?php \/\//' -e 's/<?\($\|\s\|\$\)/<?php \1/g' {} \;

Разбираемся
find -type f -name ‘*.php’ -exec <CMD> \; — находит все файлы с расширением php, и для каждого выполняет команду CMD.
\; является обязательным терминатором команды, иначе find не сможет понять в каком месте команда заканчивается. Для доступа к имени файла, найденного find используется оператор {}.

sed -i   — при указании этого ключа sed производит замену в файле (Если к ключу приписать .BAK — все изменяемые файлы будут забэкаплены в формате file.php.BAK)
-e ‘s/<?=\s*/<?php echo /’ — заменяет все <?=something на <?php echo something
-e ‘s/<?\s*\/\*/<?php \/*/’ — заменяет все <?/* на <?php /*
-e ‘s/<?\s*\/\//<?php \/\/’ — заменяет все <?// на <?php //
-e ‘s/<?\($\|\s\|\$\)/<?php \1/ — заменяет все остальные короткие теги (<?$test = ‘test’ ==> <?php $test = ‘test’)
{} — имя файла с которым будет работать sed

Комментарии

comments powered by Disqus
Яндекс.Метрика