如何在PHP codeigniter中编写ini文件?
嗨,我想在php中写一个ini文件。 首先我上传一个ini文件到我的服务器,然后我编辑它, 我想对参数进行一些更改,然后将该文件保存回上传 我使用了如何在PHP codeigniter中编写ini文件?,php,codeigniter,Php,Codeigniter,嗨,我想在php中写一个ini文件。 首先我上传一个ini文件到我的服务器,然后我编辑它, 我想对参数进行一些更改,然后将该文件保存回上传 我使用了put\u file\u contents和fwrite,但没有得到所需的结果 这是我的代码: $data = array('upload_data' => $this->upload->data()); foreach ($data as $info) { $filepath = $info['file_path'];
put\u file\u 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);
正如我在上一个问题中告诉您的,您需要使用一个helper函数将数组转换为ini文件的正确格式。您可以找到这样一个助手函数
另外,您正在使用php内置方法从codeigniter加载文件助手。请查看文档。正如我在上一个问题中告诉您的,您需要使用帮助函数将数组转换为ini文件的正确格式。您可以找到这样一个助手函数
另外,您正在使用php内置方法从codeigniter加载文件助手。请查看文档。类似于以下内容的内容可能会起作用:
//Replace the fwrite($file,implode('', $insert)); with
$iniContent = "";
foreach ($insert as $key => $value) {
$initContent .= $key."=".$value.PHP_EOL;
}
fwrite($file,$iniContent);
注意:这可能是一个人能做的最简单的事情。我不处理节、注释、转义字符或基本上任何类型的错误检查。如果您希望在代码中大量完成这类工作,我建议您查看现有的INI读/写库
更新
请尝试或按照在上的建议(该网站还提供了有关此特定问题的更多信息) 类似于以下的东西可能会起作用:
//Replace the fwrite($file,implode('', $insert)); with
$iniContent = "";
foreach ($insert as $key => $value) {
$initContent .= $key."=".$value.PHP_EOL;
}
fwrite($file,$iniContent);
注意:这可能是一个人能做的最简单的事情。我不处理节、注释、转义字符或基本上任何类型的错误检查。如果您希望在代码中大量完成这类工作,我建议您查看现有的INI读/写库
更新
请尝试或按照在上的建议(该网站还提供了有关此特定问题的更多信息)
内爆
不会写入关联数组的键。因此,如果您的INI中需要这些密钥,这将不起作用。您应该使用array_keys($insert)来获取$insert array的密钥。@apokryfos那么我应该怎么做?我有一个数组,我想用ini格式写这个数组,这对写.ini文件有什么帮助@RaviHirani@Rajan:我告诉过你从数组中获取密钥。我不确定是否使用.ini文件写入。我需要做一个演示。如果我发现了什么,我会发布。内爆
不会写入关联数组的键。因此,如果您的INI中需要这些密钥,这将不起作用。您应该使用array_keys($insert)来获取$insert array的密钥。@apokryfos那么我应该怎么做?我有一个数组,我想用ini格式写这个数组,这对写.ini文件有什么帮助@RaviHirani@Rajan:我告诉过你从数组中获取密钥。我不确定是否使用.ini文件写入。我需要做一个演示。如果我发现了什么,我会发布它。我得到了这个错误消息:fwrite()期望参数2是字符串,数组givei我试图写这个文件($file,$insert,'r+);我得到了这个错误消息:fwrite()期望参数2是字符串,数组giveni试图写入文件($file,$insert,'r+);