suchen

Heim  >  Fragen und Antworten  >  Hauptteil

html - Wie ändert PHP einen bestimmten Wert des Array-Inhalts in einer Datei oder ...?

Ich bin schon lange verwirrt über diese Frage und hoffe, dass mir jemand einen Rat geben kann.

Angenommen, der Inhalt in config.php ist:

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

oder:

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

Wie kann ich den Wert unter „k1“ ändern? Wie kann ich dies erreichen, ohne str_replace zu verwenden? (Da der Wert von „k1“ nicht festgelegt ist, besteht meine gewünschte Methode darin, den Schlüssel zu finden, dann den Wert des Schlüssels zu ändern und die Datei zu speichern.)

迷茫迷茫2691 Tage vor910

Antworte allen(2)Ich werde antworten

  • 大家讲道理

    大家讲道理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);

    Antwort
    0
  • 漂亮男人

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

    其实最简单的办法就是config文件不要这么写,config文件格式一般如下:

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

    外部文件可以通过require该文件直接把数组的值赋给一个变量,如

    $config = require 'config.php';

    获取、改变值都很简单,要写回文件也容易。

    Antwort
    0
  • StornierenAntwort