根据模板在 php 写入配置文件
Write config file in php based on template
大家好!我是 PHP 的新手,但我学得很快。每当我学习一门新语言时,我都喜欢做一个复杂的、动手的项目,希望这能让我全面掌握这门语言。因此,我正在开发一个类似 CMS 的系统。
话虽如此,我已经到了有点困惑的地步。我制作了一个表格,用户可以在其中输入他们的数据库信息。我的系统通过验证信息,一旦它被接受,我想将它存储到一个配置文件中。我想将其设置为类似于 Wordpress,而他们有一个配置文件模板,将其复制到一个新名称,并编辑值,同时保持所有 white-space 和注释。我浏览了 Wordpress 源文件以确定他们是如何完成此操作的,我很确定他们打开文件,使用正则表达式找到他们想要更改的变量,然后简单地覆盖整行。所以我的困境是,我无法追踪所有内容以弄清楚他们是如何做到这一点的,所以即使我知道我需要做什么,我也不完全确定如何做。我进行了大量研究,但尚未找到我需要的信息。
其次,我希望您能帮助我确定这是否是实现此目的的最佳方法。如果您知道基于模板文件将信息存储到文件中的任何更好方法,那么我将非常感谢您的意见。
最后,在 Whosebug 上查看了其他此类问题,其中许多人说使用 ini 文件。不过,这些问题的答案似乎并不能很好地解释我将如何着手这样做。同样,我更喜欢使用 php 文件,但如果 ini 文件被证明更容易、更快或更可靠,也不是完全没有问题。
非常感谢您的宝贵时间!
最终你只想序列化一些信息到一个文件中,然后能够再次反序列化它。 为此,不要考虑 "templates",而是考虑将信息序列化到文件中。 PHP 的 serialize
will do, but is hardly human readable or editable, so just choose a friendlier format instead. Both YAML and JSON 非常适合这个目的。例如:
$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 文件,但没有开箱即用的功能也可以 write他们。
大家好!我是 PHP 的新手,但我学得很快。每当我学习一门新语言时,我都喜欢做一个复杂的、动手的项目,希望这能让我全面掌握这门语言。因此,我正在开发一个类似 CMS 的系统。
话虽如此,我已经到了有点困惑的地步。我制作了一个表格,用户可以在其中输入他们的数据库信息。我的系统通过验证信息,一旦它被接受,我想将它存储到一个配置文件中。我想将其设置为类似于 Wordpress,而他们有一个配置文件模板,将其复制到一个新名称,并编辑值,同时保持所有 white-space 和注释。我浏览了 Wordpress 源文件以确定他们是如何完成此操作的,我很确定他们打开文件,使用正则表达式找到他们想要更改的变量,然后简单地覆盖整行。所以我的困境是,我无法追踪所有内容以弄清楚他们是如何做到这一点的,所以即使我知道我需要做什么,我也不完全确定如何做。我进行了大量研究,但尚未找到我需要的信息。
其次,我希望您能帮助我确定这是否是实现此目的的最佳方法。如果您知道基于模板文件将信息存储到文件中的任何更好方法,那么我将非常感谢您的意见。
最后,在 Whosebug 上查看了其他此类问题,其中许多人说使用 ini 文件。不过,这些问题的答案似乎并不能很好地解释我将如何着手这样做。同样,我更喜欢使用 php 文件,但如果 ini 文件被证明更容易、更快或更可靠,也不是完全没有问题。
非常感谢您的宝贵时间!
最终你只想序列化一些信息到一个文件中,然后能够再次反序列化它。 为此,不要考虑 "templates",而是考虑将信息序列化到文件中。 PHP 的 serialize
will do, but is hardly human readable or editable, so just choose a friendlier format instead. Both YAML and JSON 非常适合这个目的。例如:
$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 文件,但没有开箱即用的功能也可以 write他们。