搜尋

首頁  >  問答  >  主體

html - PHP如何修改一個檔案中陣列內容的某個值或是...?

這個疑問困惑很久了,希望有大佬指點一二。

假如config.php中的內容是:

<?php
$config['heelo'] = array(
    'k1'    => '111111',
    'k2'    => '222222',
    'k3'    => '333333',
);

或是:

<?php exit;?>{
    "k1": "111111",
    "k2": "222222",
    "k3": "333333",
}

我該如何修改'k1'下的值?不用str_replace的方法請問如何實作? (因為'k1'的值是不固定的,我想要的方法是找到鍵,然後修改鍵的值並儲存檔案)

迷茫迷茫2690 天前907

全部回覆(2)我來回復

  • 大家讲道理

    大家讲道理2017-07-03 11:42:50

    第一種比較好做,第二種你先看下是不是寫錯了,這個結構類似JSON對象但是又不是,這就不太好做了。
    第一種的方法

    include '....'; // 此处为文件名
    
    // 下面只是示例,随便怎么操作$config['hello']
    foreach($config['hello'] as $key => $value) {
        ...
    }
    
    $output = "$config['hello'] = " . var_export($config['hello'], TRUE);
    file_put_contents('....', $output); // 省略号处为原来的文件名

    主要是用var_export輸出可供PHP讀取的數組,此函數第二個參數為false時,直接輸出,為true時傳回結果到變數。
    有一點要提醒一下,這個函數產生的陣列排版並不是很好看,如果介意的話還是自己寫一個吧。

    Update

    修改k1的實例代碼

    include '....';
    
    $config['hello']['k1'] = 'aaaa';
    
    $output = "$config['hello'] = " . var_export($config['hello'], TRUE);
    
    file_put_contents('....', $output);

    回覆
    0
  • 漂亮男人

    漂亮男人2017-07-03 11:42:50

    其實最簡單的方法就是config檔不要這麼寫,config檔格式一般如下:

    <?php
        return [
            'k1' => '111',
            'k2' => '222',
            'k3' => '333'
        ];

    外部檔案可以透過require該檔案直接把數組的值賦給一個變量,如

    $config = require 'config.php';

    取得、改變值都很簡單,要寫回檔案也容易。

    回覆
    0
  • 取消回覆