用PHP编写配置文件

用PHP编写配置文件,php,Php,可能重复: 所以我有一个用于CMS的config.php文件,是我从头创建的。此文件的结构如下所示: <?php date_default_timezone_set( "America/Phoenix" ); define( "DB_HOST_USER", "mysql:host=localhost;dbname=db_cms" ); define( "DB_USERNAME", "username" ); define( "DB_PASSWORD", "password" ); de

可能重复:

所以我有一个用于CMS的config.php文件,是我从头创建的。此文件的结构如下所示:

<?php

date_default_timezone_set( "America/Phoenix" );
define( "DB_HOST_USER", "mysql:host=localhost;dbname=db_cms" );
define( "DB_USERNAME", "username" );
define( "DB_PASSWORD", "password" );
define( "CMS_TITLE", "Sample Title");
define( "USERNAME", "cms_user");
define( "PASSWORD", "cms_password");

?>

我的问题是如何使用PHP写入此文件并将其保存到磁盘。 非常感谢您的帮助


编辑:我看到WordPress使用类似的文件结构来存储用户/应用程序配置,如所述。我只是想知道是否可以更改上面的文件(config.php)并在其中存储新的设置。例如,我想将USERNAME设置为blog_user(
define(“USERNAME”,“blog_user”);
)。是否可以只存储此更改而不重写整个文件?

我不确定您为什么要这样做,但只要用户PHP以写入权限运行,您就可以使用写入任何文件:

file_put_contents('filename', '<?php

date_default_timezone_set( "America/Phoenix" );
define( "DB_HOST_USER", "mysql:host=localhost;dbname=db_cms" );
define( "DB_USERNAME", "username" );
define( "DB_PASSWORD", "password" );
define( "CMS_TITLE", "Sample Title");
define( "USERNAME", "cms_user");
define( "PASSWORD", "cms_password");

?>
');
file\u put\u内容('filename','
');

我不确定您为什么要这样做,但只要用户PHP以具有写入权限的身份运行,您就可以使用来写入任何文件:

file_put_contents('filename', '<?php

date_default_timezone_set( "America/Phoenix" );
define( "DB_HOST_USER", "mysql:host=localhost;dbname=db_cms" );
define( "DB_USERNAME", "username" );
define( "DB_PASSWORD", "password" );
define( "CMS_TITLE", "Sample Title");
define( "USERNAME", "cms_user");
define( "PASSWORD", "cms_password");

?>
');
file\u put\u内容('filename','
');

假设要将其保存到服务器上的磁盘,可以使用以下代码:

$ourFileName = "testFile.txt";
$temp = file_get_contents($ourFileName);
对$temp进行任何必要的更改,以便添加新数据,等等,然后:

file_put_contents($ourFileName,$temp);

假设要将其保存到服务器上的磁盘,可以使用以下代码:

$ourFileName = "testFile.txt";
$temp = file_get_contents($ourFileName);
对$temp进行任何必要的更改,以便添加新数据,等等,然后:

file_put_contents($ourFileName,$temp);

存储配置数据的方法很多。尝试此堆栈溢出:

存储配置数据的方法很多。尝试此堆栈溢出:

您的意思是什么?PHP文件本身已保存到磁盘。你想创建一个可编辑的配置文件吗?你是什么意思?PHP文件本身已保存到磁盘。你想创建一个可编辑的配置文件吗?不完全是,我不想像那样重写整个文件。相反,我想知道是否有一种方法可以只设置一条改变了的线。@GopalAdhikari我现在明白了。在这种情况下,我建议您为配置创建一个数组或对象,而不是一堆常量。然后你可以序列化它并将其存储在一个文件中,或者将其存储为JSON、YAML或.ini,或者其他多种格式中的一种。是的,这就是我现在要做的。我在php.net中看到,我可以使用序列化和非序列化函数来实现我想要做的事情。谢谢你的努力。不完全是,我不想那样重写整个文件。相反,我想知道是否有一种方法可以只设置一条改变了的线。@GopalAdhikari我现在明白了。在这种情况下,我建议您为配置创建一个数组或对象,而不是一堆常量。然后你可以序列化它并将其存储在一个文件中,或者将其存储为JSON、YAML或.ini,或者其他多种格式中的一种。是的,这就是我现在要做的。我在php.net中看到,我可以使用序列化和非序列化函数来实现我想要做的事情。谢谢你的努力。