html - Wie ändert PHP einen bestimmten Wert des Array-Inhalts in einer Datei oder ...?
迷茫
迷茫 2017-07-03 11:40:50
0
2
924

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.)

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

Antworte allen(2)
大家讲道理

第一种比较好做,第二种你先看下是不是写错了,这个结构类似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);
漂亮男人

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

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

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

$config = require 'config.php';

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

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage