Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.131.110.169] |
|
Сообщ.
#1
,
|
|
|
найти в файлах "<? " и заменить "<?php "
Как такое сделать? нужно обыскать папку htdocs |
Сообщ.
#2
,
|
|
|
1) Для замен в одном файле используем sed - он позволяет задавать команды при вызове
2) Для массовой замены во всех файлах во всех подпапках, подготовим пакетный файл с одним параметром и используем команду find c ключом -exec |
Сообщ.
#3
,
|
|
|
мне не помогло
я только ГУИ видел |
Сообщ.
#4
,
|
|
|
Ну так тогда какие проблемы? Зачем тебе эта мерзкая консоль?
find -type f -name "*.php" | xargs -n1 -i sed -i "регэксп" {} Добавлено find -type f -name "*.php" | xargs -n1 -i sed -i "s/<? /<?php /" {} |
Сообщ.
#5
,
|
|
|
Цитата orb @ А средствами какой-нить IDE не получается? я только ГУИ видел |
Сообщ.
#6
,
|
|
|
Цитата Adil @ find -type f -name "*.php" | xargs -n1 -i sed -i "s/<? /<?php /" {} find . -type f -iname '*.php' -exec sed -e 's%<? %<?php %g' -i {} \; |
Сообщ.
#7
,
|
|
|
Цитата Adil @ было-бы всё так просто find -type f -name "*.php" | xargs -n1 -i sed -i "s/<? /<?php /" {} Когда-то стояла подобная задача. Так вот: пробела после <? (и после <?=) вполне может и не быть, причем не только из-за наличия вместо него конца строки, но и просто так. Т.е. строки вроде <?foreach($a as $b), вполне себе парсятся и не вызывают синтаксических ошибок. |
Сообщ.
#8
,
|
|
|
ну так, что ТС попросил, то и написал. Я в регэкспах не особо силён, но не думаю, что там что-то сложное будет - главное задачу сформулировать. Что надо то? Напимер <?foreach($a as $b) - вставлять php или нет? Или вставлять php за <? везде, где его нет? sed'у можно задать перловские регэкспы, они очень гибкие.
|
Сообщ.
#9
,
|
|
|
Цитата Adil @ Вставлять php за всеми <?, которые не внутри строк и после которых не стоит php или =. Что надо то? |
Сообщ.
#10
,
|
|
|
Цитата orb @ я только ГУИ видел Ну тогда любой текстовый редактор, который не пытается html и иже с ними анализировать и умеет regexp. И уточни задачу. |
Сообщ.
#11
,
|
|
|
Цитата Dark Side @ условие "которые не внутри строк" значительно усложняет дело. А такое - на практике - встречается? Зачем нужен <? внутри строк? Вставлять php за всеми <?, которые не внутри строк и после которых не стоит php или =. |
Сообщ.
#12
,
|
|
|
jEdit такие вещи всю жизнь делал. "<?([^p=])" replace to "<?php$1"
<?= заменить отдельно после чего запускаем git diff и проверяем: Цитата Adil @ условие "которые не внутри строк" |
Сообщ.
#13
,
|
|
|
Да тот-же netbeans делает поиск и замену регулярке. и наверняка не только он.
|