phpとJavascriptで共通の定数を参照する

定数として設定るる内容がたくさんあるので、変更する際に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(よくある方法)

 

コメントを残す