Заменить кусок кода во всех файлах на сервере

12
CW
На сайте с 07.09.2005
Offline
158
1894

Приветствую.

По дурости обновился до php 5.3

Естественно, половина сайтов перестала работать, а если работает, то очень криво.

В этой связи хочу заменить во всех скриптах на сервере <? на <?php, особенно учитывая, что 5.4 не будет поддерживать короткую запись.

Вижу в php.ini short_open_tag, он у меня On, но все равно не помогает.

В общем, какие есть варианты массовой замены куска кода во всех файлах, где он встречается?

Или какой-нибудь костыль предложите, пожалуйста.

ЗЫ. То, что проблема в этом подтверждено научным тыком на паре пациентов.

Сквозь холод тумана шагаю в пальтишке Куплю сайтов с Adsense или еще что-нибудь
M
На сайте с 16.09.2009
Offline
278
#1
ClockWorkOrange:
Вижу в php.ini short_open_tag, он у меня On, но все равно не помогает.

Обязано помогать. Если Вы еще в каком-то файле эту настройку не перекрыли.

Что показывает phpinfo()?

ClockWorkOrange:
В общем, какие есть варианты массовой замены куска кода во всех файлах, где он встречается?

man find

man sed

Что-то в духе

sed -i 's/^<?$/<?php/g' *.php
Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
CW
На сайте с 07.09.2005
Offline
158
#2
myhand:
Обязано помогать. Если Вы еще в каком-то файле эту настройку не перекрыли.

Что показывает phpinfo()?

PHP/5.3.8

short_open_tag On On

Andreyka
На сайте с 19.02.2005
Offline
822
#3
ClockWorkOrange:


PHP/5.3.8

short_open_tag On On

Значит не поменял

Меняй или попроси того, кто знает как

Не стоит плодить сущности без необходимости
DV
На сайте с 01.05.2010
Offline
644
#4

short tag это ещё что... Потом всё разукрасится "Deprecated".

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
Zaqwr
На сайте с 08.08.2007
Offline
111
#5
DenisVS:
short tag это ещё что... Потом всё разукрасится "Deprecated".

=)) то ли ещё будет

Администрирование, Linux, Cisco, Juniper
Andreyka
На сайте с 19.02.2005
Offline
822
#6

Я думаю, что лучше откатиться назад, на 5.2

S
На сайте с 06.08.2010
Offline
23
#7
В общем, какие есть варианты массовой замены куска кода во всех файлах, где он встречается?

Для обработки огромного количества файлов очень удобна программка Textpipe. Множество типовых задач уже встроено, а все остальные решаются регулярными выражениями

A
На сайте с 18.10.2011
Offline
47
#8
ClockWorkOrange:

В этой связи хочу заменить во всех скриптах на сервере <? на <?php

find dir -name *.php |xargs -I% sh -c 'mv % %.bak && cat %.bak |sed -e "s/^<?$/<?php/" >%'

код оставляет после себя бэкапы с расширением .bak

retexica
На сайте с 28.07.2011
Offline
9
#9

Через grep + sed удобно, причем sed сам может создавать резервные копии.

Но возможно действительно имеет смысл откатится до 5.2.17 и далее поэтапно перетаскивать сайты на 5.3, т.к. как верно уже отметили там будет много deprecated, плюс в 5.3 новый драйвер для работы с mysql используется, не покатят старые конструкции.

N
На сайте с 06.05.2007
Offline
419
#10
retexica:
плюс в 5.3 новый драйвер для работы с mysql используется, не покатят старые конструкции.

что конкретно имеется ввиду? апи не изменилось

http://www.php.net/manual/en/mysqlnd.overview.php:

it is important to note that it does not provide a new API to the PHP programmer.

И, кажется, mysqlnd нигде в дистрибутивах еще не собирают.

Кнопка вызова админа ()
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий