如何使用另一个php文件编辑php文件的变量

时间:2017-07-06 05:07:53

标签: php

好的,我想做一些类似于Simple Machine Forum如何编辑论坛管理员面板中的某个变量的内容。例如 我有一个 settings.php 文件。我希望 tool.php 打开并在 settings.php 中找到所有已声明的php变量,例如 $ background_color ='Orange' < / strong>并输出 tools.php 背景颜色:橙色在表单标记内部,一旦更改为'紫色'并提交,将'Orange'替换为'Purple',现在如果我打开'settings.php',文件中的变量现在是 < em>“$ background_color ='Purple'” ,无需手动编辑。我只需提交变量的新数据并替换旧的数据。

3 个答案:

答案 0 :(得分:1)

为了保持数据的持久性,您需要将数据存储在数据库或单独的文件中,例如JSON文件。然后,您可以在需要的任何地方使用该数据。

以下是使用JSON文件的示例。

setting_variables.json:

{
    "background": "red",
    "color": "white"
}

的settings.php

$settings = json_decode(file_get_contents("settings_variables.json"), true);
$background = $settings['background'];

tools.php

include ("settings.php");

// If form is posted
if(isset($_POST['submit'])){
    /* Updating variables in JSON file*/

    //Get settings_json file
    $setting_vars = json_decode(file_get_contents('settings_variables.json'), true);

    // Update variable
    $background = $setting_vars['background'] = $_POST['color'];

    // Store variable value to JSON file
    file_put_contents("settings_variables.json", json_encode($setting_vars));
}

?>

<form method="post" <?php echo "style='background-color:".$background . "'"; ?>>
    <select name="color">
    <option value="red">red</option>
    <option value="blue">blue</option>
    <option value="orange">orange</option>
    <option value="yellow">yellow</option>
    <option value="purple">purple</option>
  </select>
  <input type="submit" name="submit"/>
</form>

答案 1 :(得分:0)

您可以使用数据库执行此操作 从settings.php中的数据库中获取该值 并从您的tools.php或您想要的任何地方更新。

答案 2 :(得分:0)

要在tool.php中加载变量,只需include("settings.php")

要更改设置,您需要修改settings.php。

最简单的方法应该是通过正则表达式替换旧值,例如旧值。 ["\$background_color *= *'\d*'"]并将其替换为["\$background_color = 'Purple'"]

只需使用新字符串覆盖该文件。

我不确定我是否正确地逃脱了所有内容,但这样您就可以替换整个文件。

请参阅http://php.net/manual/en/function.preg-replace.php

缺点是,如果设置文件非常大,可能需要一些时间才能完成,尽管这可能不是您的用例的问题。

或者,您可以逐行读取文件并替换它(手动或通过再次使用正则表达式替换。