如何在PHP codeigniter中编写ini文件?

时间:2016-02-22 13:21:34

标签: php codeigniter

您好我想将一个ini文件写入php。 首先我将一个ini文件上传到我的服务器,然后我编辑它, 我想对参数进行一些更改,然后将该文件保存回上传。

我使用了put_file_contentsfwrite但未获得所需的结果。

这是我的代码:

$data = array('upload_data' => $this->upload->data());
foreach ($data as  $info) 
{
    $filepath = $info['file_path'];
    $filename= $info['file_name'];
}
$this->data['parameters']   = parse_ini_file($filepath.$filename);
$insert = array(
                'OTAID' => $this->input->post('OTAID'), 
                'SipUserName' => $this->input->post('SipUserName') , 
                'SipAuthName' => $this->input->post('SipAuthName'), 
                'DisplayName' => $this->input->post('DisplayName'),
                'Password' => $this->input->post('Password'), 
                'Domain' => $this->input->post('Domain'), 
                'Proxy' => $this->input->post('Proxy'), 
                'ServerMode' => $this->input->post('ServerMode')  
                );
$this->load->helper('file');
$file =fopen($filepath.$filename,'w');
fwrite($file,implode('', $insert));
$this->data['subview'] = 'customer/upload/upload_success';
$this->load->view('customer/_layout_main', $this->data);

2 个答案:

答案 0 :(得分:1)

正如我在上一个问题中告诉你的那样,你需要使用辅助函数将数组转换为ini文件的正确格式。你可以找到这样一个帮助函数here

此外,您正在从codeigniter加载文件助手,但使用php内置方法。请查看文档here

答案 1 :(得分:1)

以下内容可能有用:

//Replace the fwrite($file,implode('', $insert)); with
$iniContent = "";
foreach ($insert as $key => $value) {
    $initContent .= $key."=".$value.PHP_EOL;
}
fwrite($file,$iniContent);

注意:这可能是最简单的事情。我没有处理部分或注释或转义字符或基本上任何类型的错误检查。如果您希望在代码中完成这类工作,我建议您查看现有的INI读/写库。

<强>更新 请按照http://pear.php.net/package/Config_Lite的建议尝试http://pear.php.net/package/Configcreate ini file, write values in PHP(还有更多信息可供查看此特定问题)。