我想做一个简单的PHP设置文件。它是这样工作的:
<?php //settings.php
$setting1 = "Something";
$setting2 = "somethingelse";
?>
然后我有一个html表单,得到提交到另一个文件,我很好奇,是如何改变设置在"settings.php"将数据提交到表单中,然后保存文件。如果有可能的话。我知道一个方法是
- 包括settings.php
- 更改相应的设置
- 删除settings.php
- 为settings.php文件重新创建字符串
- 将字符串写入新的settings.php文件
但是我想知道是否有一个更简单的方法…因为我的settings.php很长。如果这是个愚蠢的问题,我道歉。我只是好奇是否有办法做到这一点。提前感谢!
编辑
经过四年的反思和成长,我发现这个想法是疯狂的。如果要管理配置,最好的方法(依我之见)是使用数组包含文件。不应该修改配置(这是我在第2点中提出的要求)。3。4。5.
如果你正在寻找一个更深入的配置库,可以看看Gestalt,这是我的一个同事写的库。
// main.php
<?php
$config = include_once 'config.php';
echo 'Configured name is: ' . $config['main']['name'];
// config.php
<?php
return [
'main' => [
'name' => 'Nathan'
]
];
这不是一个愚蠢的问题,但这是一个非常愚蠢的想法。
考虑有人提交值为"rmdir('/');"的表单。
如果你真的想做这样的事情,你最好使用JSON之类的不可执行的东西。
settings.php需要是。php文件吗?如果没有,您可以创建一个这样的表单:
<form id="settings" action="submit.php" method="post">
Setting one: <input type="text" name="set1" value="" width="10" ><br />
Setting Two: <input type="text" name="set2" value="" width="10"><br />
Setting Three: <input type="text" name="set3" value="" width="10"><br />
<input type="submit" value="Submit settings" >
</form>
然后创建一个"submit.php"以可用的格式将文件写入服务器:
$filename = $_POST['filename'] . '.csv';
$export = $_POST['export'];
$writer = fopen($filename, 'w') or die('cannot create');
fwrite($writer, $export . "'n");
fclose($writer);
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename='.basename($filename));
readfile($filename);
unlink($filename);
exit();
我想那应该符合你的目的。