在大多数情况下,我同意@uzyn 和@Ibu - 最好了解有关使用数据库的更多信息,然后将其用于您的配置数据。话虽如此,为了完整起见,我提供以下内容。但是请注意,这种方法存在安全问题。
我创建了三个文件:配置文件,名为 config.cfg;一个用于显示配置的 PHP 文件,名为 show_config.php;以及另一个名为 write_config.php 的 PHP 文件,用于保存配置更改,然后调用 show_config.php 重新显示配置。所有这些都过于简单化并出现在下面。
[配置.cfg]
cfg_data: 42
[show_config.php]
<html>
<head>
<title>Configuration</title>
</head>
<body>
<?php
$cfg_name = "config.cfg";
$cfg_data = file_get_contents($cfg_name);
$lines = explode("\n", $cfg_data);
$cfg_vals = explode(":", $lines[0]);
$cfg_value = trim($cfg_vals[1]);
?>
<form action="write_config.php">
Configuration Value: <?php echo "<input type=\"text\" name=\"config_val\" value=\"$cfg_value \" >" ?> </input>
<br>
<input type="submit">
</form>
</body>
</html>
[write_config.php]
<?php
$cfg_name = "config.cfg";
$new_data = "cfg_data: " . $_REQUEST['config_val'];
if (file_exists($cfg_name)) {
unlink($cfg_name);
}
try {
file_put_contents($cfg_name, $new_data);
} catch (Exception $e) {
echo "Exception caught! " . $e -> getMessage() . "<br> \n";
}
header("Location:show_config.php");
$cfg_name = "config.cfg";
$new_data = "cfg_data: " . $_REQUEST['config_val'];
if (file_exists($cfg_name)) {
unlink($cfg_name);
}
try {
file_put_contents($cfg_name, $new_data);
} catch (Exception $e) {
echo "Exception caught! " . $e -> getMessage() . "<br> \n";
}
header("Location:show_config.php");
?>
请注意,为了使其正常工作,必须将 config.cfg 上的权限设置为 o:rwx(使用> chmod o+wx config.cfg
),这是安全问题之一。此外,此代码不进行输入清理。如果你真的会使用这样的东西,你应该在保存任何东西之前检查并清理所有用户输入。