定数として設定るる内容がたくさんあるので、変更する際に1つのファイルでまとめたいときにやってみた備忘録。
事例:日本語向けのメッセージ設定ファイル、英語向けのメッセージ設定ファイル、中国語向けのメッセージ設定ファイル、ドイツ語向けのメッセージ設定ファイル…がある場合にフラグ一つで設定ファイルを変更したかった。
手法
設定ファイルはCDATA付きのxmlファイルで作成して、JavascriptはAjaxで、phpは普通に読み込む。
フラグはURL引数とかcookieで保持していればいい。
詳細
※↓クッキー参照で言語を判別する部分は省略しています。
xml取得部分のみ掲載です。
設定ファイルの例
■const_jpn.xml
<?xml version="1.0" encoding="UTF-8" ?> <my_const> <msg> <!-- ログイン --> <login><![CDATA[ログインしました]]></login> <!-- マイページ --> <mypage><![CDATA[ようこそ]]></mypage> </msg> </my_const>
呼び出し側の記述方法
■呼び出し元のphp
$constdata = file_get_contents("const_jpn.xml"); $my_const = simplexml_load_string($constdata,'SimpleXMLElement', LIBXML_NOCDATA); echo $my_const -> msg -> login;//ログインメッセージの表示
■呼び出し元のjavascript
$.ajax({ url: "const_jpn.xml", async: true, cache: false, dataType:"xml", success: function(xml){ $("msg ",xml).each(function(){ alert($("login",this).text());//ログインメッセージの表示 }) } });
もし、動的変数ならAjaxでphpからのJSONにした戻り値を使えばOK(よくある方法)