【问题标题】:How to write a ini file in PHP codeigniter?如何在 PHP codeigniter 中编写 ini 文件?
【发布时间】:2016-02-22 13:21:34
【问题描述】:

您好我想将一个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);

【问题讨论】:

  • implode 不写关联数组的键。因此,如果您需要 INI 中的那些,这将不起作用。
  • 你应该使用 array_keys($insert) 来获取 $insert 数组的键。
  • @apokryfos 那我该怎么办?我有一个数组,我想以 ini 格式编写该数组
  • 这将如何帮助编写 .ini 文件? @RaviHirani
  • @Rajan :我告诉过你从数组中获取密钥。我不确定 .ini 文件是否写入。我需要为此制作演示。如果我发现了什么,我会发布它。

标签: php codeigniter


【解决方案1】:

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

您还从 codeigniter 加载文件帮助程序,但使用 php 内置方法。请查看文档here。

【讨论】:

  • 我收到此错误消息:fwrite() 期望参数 2 为字符串,给定数组
  • 我试图这样做 write_file($file, $insert, 'r+');
【解决方案2】:

类似以下的方法可能会起作用:

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

注意:这可能是最简单的事情。我不处理节或 cmets 或转义字符或基本上任何类型的错误检查。如果您希望在您的代码中经常执行此类操作,我建议您查看现有的 INI 读/写库。

更新 按照create ini file, write values in PHP 的建议尝试http://pear.php.net/package/Config_Lite 或http://pear.php.net/package/Config(对于这个特定问题,还有更多信息可供查看)。

【讨论】:

    猜你喜欢
    • 2017-03-07
    • 1970-01-01
    • 2021-05-14
    • 2022-01-05
    • 2010-11-19
    • 2017-03-07
    • 2010-10-28
    • 2013-04-26
    • 1970-01-01
    相关资源
    最近更新 更多