基于模板在php中编写配置文件

时间:2016-01-04 16:17:08

标签: php templates config

大家好!我对PHP比较陌生,但我学得很快。每当我学习一门新语言时,我都会喜欢上一个复杂的实践项目,希望能让我全面掌握这门语言。因此,我正在开发类似CMS的系统。

话说回来,我已经到了一个有点难过的地步。我已经创建了一个表单,用户可以在其中输入数据库信息。我的系统通过,验证信息,一旦它被接受,我想将它存储到配置文件中。我想将它设置为类似于Wordpress,而他们有一个配置文件模板,将其复制到一个新名称,并编辑值,同时保持所有空白和注释。我浏览了Wordpress源文件以确定他们是如何完成此操作的,我非常确定他们打开文件,使用正则表达式找到他们想要更改的变量,然后简单地覆盖整个线。所以我的困境是这样,我无法追踪所有内容以确切地知道他们是如何做到这一点的,所以即使我知道我需要做什么,我也不完全确定如何做到。我做了大量的研究,还没有找到我需要的信息。

其次,我希望你能帮助我确定这是否是实现这一目标的最佳方法。如果您知道基于模板文件将信息存储到文件中的更好方法,那么我非常感谢您的输入。

最后,在StackOverflow上查看此类其他问题,其中许多人都说要使用ini文件。虽然,这些问题的答案似乎并不能很好地解释我是如何做到这一点的。同样,我更喜欢使用php文件,但如果它更容易,更快或更可靠,那么ini文件就不是完全不可能的。

非常感谢你的时间!

1 个答案:

答案 0 :(得分:1)

最终,您只想 序列化将某些信息整理到文件中,然后再次反序列化为此目的,而不是思考在“模板”中,考虑将信息序列化为文件。 PHP的serialize会做,但几乎不可读或可编辑,所以只需选择更友好的格式。 YAMLJSON都非常适合这个目的。 E.g:

$userInput = ['foo' => 'bar', 'baz' => 42];
file_put_contents('config.json', json_encode($userInput, JSON_PRETTY_PRINT));

$configuration = json_decode(file_get_contents('config.json'), true);

INI也是一个非常简单的人类可编辑文件格式,PHP可以read个INI文件,但没有开箱即用的功能也可以它们。