Регулярное выражение PHP для соответствия функции define () - PullRequest
0 голосов
/ 20 августа 2010

Я делаю перевод php-скрипта и хочу выиграть немного времени, выполнив некоторую автоматизацию. Файл содержит очень большое количество строк, подобных этим

define('LNG_NewsletterNameIsNotValid', 'Email Campaign name is not Valid');
define('LNG_UnableToCreateNewsletter', 'Unable to create an Campaña de Email');
define('LNG_HLP_NewsletterName', 'You must insert \\\'Custom Fields\\\' in the field.');
define('LNG_UnableToUpdateNewsletter', 'Unable to update '. LNG_xxx . ' from Email Campaign');

, и я хотел бы:

  • открыть каждый файл php
  • пройти каждую строку
  • получить строку, соответствующую каждому define ()
  • поставить поле, в котором я должен написать перевод
  • сохранить новую строку в файл

У меня почти закончен сценарий , за исключением части для получения строки для перевода из каждой строки.Я привожу несколько примеров, чтобы вы могли видеть, что строки перевода могут содержать ссылки на другие переменные, кавычки и т. Д.

Нужно ли регулярное выражение, верно?
Может ли кто-нибудь помочь мне с одним?

1 Ответ

2 голосов
/ 20 августа 2010

Возможно, вам лучше использовать token_get_all.Хотя регулярные выражения, вероятно, могут получить большинство из них, у него нет необходимой сложности для правильного синтаксического анализа PHP ( точно так же, как регулярные выражения не могут анализировать html ).token_get_all пропустит только крайние случаи, такие как использование переменной-функции или eval текста.

Если вы выполняете языковые переводы, возможно, стоит посмотреть gettextвместо использования define.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...