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

如何用另一个php文件编辑php文件的变量,php,Php,好的,我想做一些类似于Simple Machine Forum在论坛的管理面板中编辑一些变量的事情。例如 我有一个settings.php文件。我希望tool.php在设置中打开并查找所有声明的php变量,如$background\u color='Orange'并在工具中输出。phpbackground color:Orange在表单标记中,一旦更改为'Purple'并提交,将'Orange'替换为'Purple',现在如果我打开'settings.php',文件中的变量现在是“$backgr

好的,我想做一些类似于Simple Machine Forum在论坛的管理面板中编辑一些变量的事情。例如
我有一个settings.php文件。我希望tool.php设置中打开并查找所有声明的php变量,如$background\u color='Orange'并在工具中输出。phpbackground color:Orange在表单标记中,一旦更改为'Purple'并提交,将'Orange'替换为'Purple',现在如果我打开'settings.php',文件中的变量现在是“$background\u color='Purple'”,而无需手动编辑。我只需提交变量的新数据并替换旧数据。

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

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

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

最简单的方法是用新值替换旧值,例如
[“\$background\u color*=*'\d*'”]
并用
[“\$background\u color='Purple'”
替换

只需用新字符串覆盖文件

我不确定我是否正确地转义了所有内容,但通过这种方式,您应该能够替换整个文件

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


或者,您可以逐行读取并替换该文件(手动或再次使用regex替换)。

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

下面是一个使用JSON文件的示例

设置_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>
include(“settings.php”);
//如果表格已张贴
如果(isset($_POST['submit'])){
/*更新JSON文件中的变量*/
//获取json文件的设置
$setting\u vars=json\u decode(file\u get\u contents('settings\u variables.json'),true);
//更新变量
$background=$setting_vars['background']=$u POST['color'];
//将变量值存储到JSON文件
文件内容(“settings_variables.json”,json_encode($setting_vars));
}
?>

可能会对您有所帮助。这是一个众所周知的不稳定情况。首先,从安全角度来看,有许多类型的权限情况实际上会保证这不会起作用。这也可能是一个巨大的安全漏洞,因为当您有一个可以编写.php文件的系统时,您或用户犯的任何错误都是一个主要的问题ector进入攻击和特权代码执行。总的来说,这是一个坏主意。大多数软件包都有一个简单的有限config.php文件,它只需要数据库凭据,然后在数据库本身中保留大部分的your name=value变量。谢谢:D我想避免使用数据库选项,我已经考虑过了。