【问题标题】:How to edit an uploaded file in CodeIgniter如何在 CodeIgniter 中编辑上传的文件
【发布时间】:2016-02-22 12:21:09
【问题描述】:

我正在使用 CodeIgniter 上传 .ini 文件。

上传文件后,我使用 PHP 的 INI 解析器并将文件内容作为数组获取。

现在我想编辑该文件的内容。我该怎么做?

我的代码:

function do_upload()
{
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = '*';

    $this->load->library('upload', $config);
    $this->upload->initialize($config);

    if ( ! $this->upload->do_upload())
    {
        $error = array('error' => $this->upload->display_errors());
        $this->load->view('customer/upload/upload_ini', $error);
    }
    else
    {
        $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);

        $this->data['subview'] = 'customer/upload/upload_success';
        $this->load->view('customer/_layout_main', $this->data);
    }
}

在我看来:

<?php 
var_dump($parameters);
?>
<tr>
    <td>OTAID</td>
    <td><?php echo form_input('OTAID', set_value('OTAID', $parameters->OTAID)); ?></td>
</tr>
<tr>
    <td>SipUserName</td>
    <td><?php echo form_input('SipUserName', set_value('SipUserName', $parameters->SipUserName)); ?></td>
</tr>
<tr>
    <td>SipAuthName</td>
    <td><?php echo form_input('email2', set_value('email2', $parameters->email2)); ?></td>
</tr>
<tr>
    <td>DisplayName</td>
    <td><?php echo form_input('email2', set_value('email2', $parameters->email2)); ?></td>
</tr>
<tr>
    <td>Password</td>
    <td><?php echo form_input('email2', set_value('email2', $parameters->email2)); ?></td>
</tr>
<tr>
    <td>Password</td>
    <td><?php echo form_input('email2', set_value('email2', $parameters->email2)); ?></td>
</tr>
<tr>
    <td>Domain</td>
    <td><?php echo form_input('email2', set_value('email2', $parameters->email2)); ?></td>
</tr>
<tr>
    <td>Proxy</td>
    <td><?php echo form_input('email2', set_value('email2', $parameters->email2)); ?></td>
</tr>
<tr>
    <td>ServerMode</td>
    <td><?php echo form_input('email2', set_value('email2', $parameters->email2)); ?></td>
</tr>

从我的文件中我得到以下内容:

array (size=9)
    'OTAD' => string '0' (length=1)
    'PName' => string '' (length=0)
    'UName' => string '' (length=0)
    'DisplayName' => string '' (length=0)
    'Password' => string '' (length=0)
    'Domain' => string '' (length=0)
    'Proxy' => string '' (length=0)
    'Port' => string '' (length=0)
    'ServerMode' => string 'Automatic' (length=9)

【问题讨论】:

  • 我知道我的视图代码是错误的,但我还不知道如何显示文本框以将值插入文件
  • 您的页面显示什么错误?
  • 严重性:通知消息:尝试获取非对象的属性文件名:upload/upload_success.php 行号:10
  • @msvairam 我收到此错误
  • LINE NUMBER : 10 中的代码是什么?

标签: php codeigniter ini


【解决方案1】:

使用这个编码

 <td>OTAID</td>
        <td><?php echo form_input('OTAID', set_value('OTAID', $parameters->OTAID)); ?></td>

    </tr>



    <tr>

        <td>SipUserName</td>
        <td><?php echo form_input('SipUserName', set_value('SipUserName', $parameters['SipUserName'])); ?></td>

    </tr>


    <tr>

        <td>SipAuthName</td>
        <td><?php echo form_input('email2', set_value('email2', $parameters['email2'])); ?></td>

    </tr>


    <tr>


        <td>DisplayName</td>
        <td><?php echo form_input('email2', set_value('email2', $parameters['email2'])); ?></td>
    </tr>



    <tr>


        <td>Password</td>
        <td><?php echo form_input('email2', set_value('email2', $parameters['email2'])); ?></td>
    </tr>


    <tr>


        <td>Password</td>
        <td><?php echo form_input('email2', set_value('email2', $parameters['email2'])); ?></td>
    </tr>


    <tr>


        <td>Domain</td>
        <td><?php echo form_input('email2', set_value('email2', $parameters['email2'])); ?></td>
    </tr>


    <tr>


        <td>Proxy</td>
        <td><?php echo form_input('email2', set_value('email2', $parameter['email2'])); ?></td>
    </tr>


    <tr>


        <td>ServerMode</td>
        <td><?php echo form_input('email2', set_value('email2', $parameters['email2'])); ?></td>
    </tr>

【讨论】:

  • 如何保存到文件中??我的控制器代码应该是什么?
【解决方案2】:

正如在 cmets 中已经描述的,您需要在视图中使用 $parameters 作为数组,因为 parse_ini_file 返回一个。

您要生成什么样的文本框?您使用的是普通输入字段,您的意思是 textarea 吗?

如何从数组中生成一个ini文件你可以看到here。您可以使用 file_put_contents 写入文件。

【讨论】:

  • 你能为我的情况写代码吗?我不明白!现在有一个数组,我想把它写到我打开的文件中
猜你喜欢
  • 2015-04-18
  • 1970-01-01
  • 2017-03-28
  • 1970-01-01
  • 1970-01-01
  • 2017-08-04
  • 2016-08-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多