1

アップグレードが必要なPHPスクリプトがあり、言語文字列を定数として定義する約50の言語ファイルがあります。例:

define('ERROR_LOGIN', 'Wrong username and password');
define('SUCCESS_LOGIN', 'Successful login');
define('COPYRIGHT', '© 2012 Company inc.');

...等。一部の定数は複数行であり、エスケープ文字などがあります。

これらの言語ファイルの独自の翻訳がありますが、多くの新機能も備えているため、多くの新しい定数を備えたこのスクリプトの新しいバージョンにアップグレードしたいと考えています。これらの新しい定数は、新しい言語ファイルの最後には定義されていません。新しい文字列をコピーして貼り付けるだけで簡単です。古い定数の間でも定義されており、一部の古い定数は現在、新しいバージョンで廃止されています。

だから私の質問は-古いファイルの定数を保持し、新しい定数だけを翻訳できるようにファイルの最後に新しい定数を追加するだけで、古い言語ファイルと新しい言語ファイルをマージする最も簡単な方法は何でしょうか?

ありがとう!

4

1 に答える 1

2

定数の使用に関する問題の1つに遭遇しました。定数は、実際には定数です。

ただし、定数の各セットから情報を単独で抽出することで、これを解決できます。

定数を含む最初のファイルをロードしget_defined_constants、出力を呼び出して一時ファイルにシリアル化します。

2番目のファイル/リクエスト/呼び出しで、定数を使用して2番目のファイルをロードし、get_defined_constants再度呼び出し、一時ファイルから前の情報のシリアル化'user'を解除し、get_defined_constantsによって返される配列の一部のコンテンツを比較します。

重要なことは、2回の実行でそれを行うことです。これにより、呼び出しの間に定数が削除されます。

于 2012-11-30T10:07:59.240 に答える