2011-08-19 28 views
1

を使用して.PHPファイルIは、例えば、言語ファイルen.php編集PHP

<?php 

$language = array(
    "language_code" => "en", 
    "language_name" => "English", 


); 

これらの言語ファイルを持っているが、多言語をサポートするために、テンプレートファイルで、特定の物事を置き換える置き換えます。

PHPを使用して配列に要素を追加する方法はありますか?
私は設定で何かをします。新しい言語値を追加すると、PHPはこれをen.phpファイルに追加して保存します。

これが可能かどうかはかなり複雑なことがあると思います。それが可能であれば、そうするための少しの提案がありがたい。私はPHPでファイルを編集する経験はあまりありません。

言語フォーマットをXMLに変更するほうが簡単な場合は、XMLに変更できます。代わりに、PHPコード(またはXML)のデータを記憶する

おかげ

+1

はい、XMLは挑戦的に簡単で高速になり、使用するのがより理にかなっています。 –

+0

次に、XMLファイルをどのように編集するのでしょうか? –

+0

と 'en.php'自体を編集しないのはなぜですか? – k102

答えて

5

JSONを使用します。データをロードします。

$json = file_get_contents('en.json'); 
if ($json === false) throw new Exception('Cannot read file!'); 
$language = json_decode($json, true); // true tells json_decode to export as array ;) 

し、それを格納します。

$phpCode = "<?php\n\n" . '$language = ' . var_export($language, true) . ';'; 
if (file_put_contents('en.php', $phpCode) === false) { 
    throw new Exception('Can not store language'); 
} 

あります:あなたは本当にvar_export機能を使用し、PHPのプログラムとして、あなたのデータを格納することを主張した場合

$json = json_encode($language); 
if (file_put_contents('en.json', $json) === false) { 
    throw new Exception('Can not store language'); 
} 

XMLを使用する必要はありません。なぜなら、JSONよりも遅く、複雑になるからです。また、往復時間と繰り返しのクエリの解析と評価がアプリケーションの処理速度を低下させる傾向があるため、一般的に(リレーショナル)データベースには翻訳を格納しないでください。

+0

お試しいただきありがとうございます –

+0

これは非常に簡単で簡単です。ありがとうたくさんの –

0

あなたが記述している配列の代わりに、可能な言語を格納しているxmlファイル(またはデータベース)を導入してみませんか?

+0

DBから20以上の値を読み込むと、この方法のパフォーマンスはどうですか? –