Я ненавидел делать это в прошлом. Это будет охватывать все случаи, кроме серьезных, и многомерных массивов. Либо используйте preg_replace
, либо что-то, что позволяет регулярное выражение для массовой замены во всех файлах (например, Dreamweaver).
\$(\w+)\[(\w+)\]
Заменить так (\#
, где #
- смещение совпадения):
$\1['\2']
Я полагаю, что синтаксис замены Dreamweaver:
$$1['$2']
Многомерный может работать с (после запуска выше):
\['(\w+)'\]\[(\w+)\]
['$1']['$2']
И, наконец, вдохновленный комментариями @ MarcB, теоретически вы можете использовать PHP :: Tokenizer . См. пример и измените статус регистра для запуска на T_ARRAY
и измените массив для соответствия перед его выводом (и любой другой частью файла). Если все работает хорошо, вы получите новый файл, который затем можете зациклить на SPL::DirectoryIterator
и обновить все файлы за один раз (сейчас и в будущем).