可能有一个javascript和php的配置文件

Possible to have one config file for javascript and php?

本文关键字:php 配置文件 javascript 有一个      更新时间:2023-09-26

我有一些特定于主机的值,我保存了各种配置文件,但现在我在javascript代码中需要它们的一些值。如何同时为javascript和php配置一个配置?

如果可能的话,配置中的信息应该是私有的,因为它包含主机/数据库凭据。

如果您的配置包含在一个可以完全公开的对象中,您可以简单地执行:

<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>