2016-02-22 71 views
0

我使用CodeIgniter上傳.ini文件。如何在CodeIgniter中編輯上傳的文件

一旦我上傳文件,我使用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) 
+0

我知道我的視圖代碼是錯誤的,但我還不知道如何顯示文本框,以將值插入文件 – Rajan

+0

什麼錯誤顯示在您的頁面? – msvairam

+0

嚴重性:注意 消息:試圖讓非對象的屬性 文件名:上傳/ upload_success.php 行號:10 – Rajan

回答

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> 
+0

如何將此文件保存?我的控制器代碼應該是什麼? – Rajan

0

如前所述,您需要使用$參數作爲數組,因爲parse_ini_file會返回一個。

你想生成什麼樣的文本框?你正在使用正常的輸入字段,你的意思是textarea

如何從數組中生成ini文件,您可以看到here。您可以使用file_put_contents來寫入文件。

+0

你能爲我的情況編寫代碼嗎?我不明白!現在有一個數組,我想把它寫到我打開的文件中 – Rajan