我正在尝试为我的CMS创建安装脚本,但我不知道如何...
我希望我的脚本将$var
中的config.php
设置为输入的值。
像:
<?php
$file = config.php
$file_handle = fopen($file, "rw");
fwrite($file_handle, "$settings1 = ".$_POST['settings1']);
fclose($file_handle);
?>
这是工作还是我用坏方法?因为我尝试了它并且它不起作用......
答案 0 :(得分:2)
执行此操作的方法是将配置文件解析为变量,解析它并从解析的数据中更改设置,然后将文件重新写回文件,覆盖旧文件。
如果这是你自己的cms并且你正在创建系统,我会使用像$ settings ['key'] = $ value这样的数组配置;或者您也可以使用ini文件并使用php的内置函数来解析然后重新写入数据。
这是我用了很长时间的方法,它对我有用。
示例强>
以下是Zend Framework组件Zend_Config_Writer的示例用法:(http://zendframework.com/manual/en/zend.config.writer.introduction.html)
$config = new Zend_Config_Ini('config.ini',
null,
array('skipExtends' => true,
'allowModifications' => true));
// Modify a value
$config->production->hostname = 'foobar';
// Write the config file
$writer = new Zend_Config_Writer_Ini(array('config' => $config,
'filename' => 'config.ini'));
$writer->write();
它们具有ini,xml,yaml和本机php数组的组件。将它加入你的cms或研究他们使用的方法是明智的。
希望有所帮助,
杰
答案 1 :(得分:0)
file_put_contents('/path/to/config.php', "$settings1 = ".clean($_POST['settings1']), FILE_APPEND | LOCK_EX);
请注意许可。
答案 2 :(得分:0)
快速而肮脏。
您需要编辑的文件:
$i_am_a_var = [I AM A PLACE HOLDER NUMBER 4];
以下是安装脚本:
$c=file_get_content('file_to_edit.php');
$c=str_replace('[I AM A PLACE HOLDER NUMBER 4]',"'zimbabue the new value'",$c);
file_put_content('file_to_edit.php',$c);
答案 3 :(得分:0)
我建议您使用.ini文件进行配置。它们非常容易阅读(例如,查看parse_ini_file())。写它们有点困难,但我仍然认为它比你想做的更容易。
此外,您可以将json_encode()和json_decode()的JSON文件用于此类目的,因为对于它们,您已经完成了读取和写入此类文件的功能。