好的,我想做一些类似于Simple Machine Forum如何编辑论坛管理员面板中的某个变量的内容。例如 我有一个 settings.php 文件。我希望 tool.php 打开并在 settings.php 中找到所有已声明的php变量,例如 $ background_color ='Orange' < / strong>并输出 tools.php 背景颜色:橙色在表单标记内部,一旦更改为'紫色'并提交,将'Orange'替换为'Purple',现在如果我打开'settings.php',文件中的变量现在是 < em>“$ background_color ='Purple'” ,无需手动编辑。我只需提交变量的新数据并替换旧的数据。
答案 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
缺点是,如果设置文件非常大,可能需要一些时间才能完成,尽管这可能不是您的用例的问题。
或者,您可以逐行读取文件并替换它(手动或通过再次使用正则表达式替换。