制作一个PHP配置文件


Make a PHP configuration file

我想做一个简单的PHP设置文件。它是这样工作的:

<?php //settings.php
    $setting1 = "Something";
    $setting2 = "somethingelse";
?>

然后我有一个html表单,得到提交到另一个文件,我很好奇,是如何改变设置在"settings.php"将数据提交到表单中,然后保存文件。如果有可能的话。我知道一个方法是

  1. 包括settings.php
  2. 更改相应的设置
  3. 删除settings.php
  4. 为settings.php文件重新创建字符串
  5. 将字符串写入新的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();

我想那应该符合你的目的。