我有一些特定于主机的值我保留了各种配置文件,但现在我需要在我的javascript代码中使用它们的一些值。我怎样才能为javascript和php配置一个配置?
如果可能,配置中的信息应该是私有的,因为它包含主机/数据库凭据。
答案 0 :(得分:1)
如果您的配置包含在您可以完全披露的对象中,您只需执行以下操作:
<script>var config = <?php echo json_encode($config); ?>;</script>
但是如果你只想要/需要它的一些属性,你可以做类似的事情:
<script>var host = <?php echo $config["host"]; ?>;</script>
或者,以更易于维护的方式:
<?php
$config = array(
"host" => "http://example.com",
"items_per_page" => 10,
"db_password" => "1234"
);
// Properties you want to include in your JS
$public_properties = array("host", "items_per_page");
// This function returns JSON containing the values from $obj,
// but only for properties contained in $props
function get_public_json($obj, $props) {
$res = array();
foreach($props as $prop)
{
$res[$prop] = $obj[$prop];
}
return json_encode($res);
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>My website</title>
<script>
var config = <?php echo get_public_json($config, $public_properties); ?>;
// will look like this: {"host" : "http://example.com", "items_per_page" : 10}
</script>
</head>
<body>
</body>
</html>