如何用另一个php文件编辑php文件的变量
好的,我想做一些类似于Simple Machine Forum在论坛的管理面板中编辑一些变量的事情。例如如何用另一个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
我有一个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我想避免使用数据库选项,我已经考虑过了。