Heim > Fragen und Antworten > Hauptteil
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.)
大家讲道理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
时返回结果到变量。
有一点需要提醒一下,这个函数生成的数组排版并不是很好看,如果介意的话还是自己写一个吧。
修改k1
的实例代码
include '....';
$config['hello']['k1'] = 'aaaa';
$output = "$config['hello'] = " . var_export($config['hello'], TRUE);
file_put_contents('....', $output);
漂亮男人2017-07-03 11:42:50
其实最简单的办法就是config文件不要这么写,config文件格式一般如下:
<?php
return [
'k1' => '111',
'k2' => '222',
'k3' => '333'
];
外部文件可以通过require该文件直接把数组的值赋给一个变量,如
$config = require 'config.php';
获取、改变值都很简单,要写回文件也容易。