您好我想将一个ini文件写入php。 首先我将一个ini文件上传到我的服务器,然后我编辑它, 我想对参数进行一些更改,然后将该文件保存回上传。
我使用了put_file_contents
和fwrite
但未获得所需的结果。
这是我的代码:
$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);
答案 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/Config或create ini file, write values in PHP(还有更多信息可供查看此特定问题)。