我正在使用配置文件来处理我正在处理的事情。在该配置文件中,我有一行$twelveHourTimeEnabled = true;
。我希望能够在此处将true切换为false,但我不确定如何将该行从true
更改为false
。
目前,我正在使用单独的文件切换两者,但我知道这一定效率非常低。
$fn = "config.php";
$file = fopen($fn, "w+");
$size = filesize($fn);
$twelveHourConfig = "12hrconfig.php";
$twelveHourConfigFile = file_get_contents($twelveHourConfig);
fwrite($file, $twelveHourConfigFile);
fclose($file);
如何在不需要读取其他两个文件的情况下将真值切换为false,反之亦然?
编辑:
此项目是桌面应用程序的PHP插件(适用于Mac OS X的Alfred App),无论用户身在何处,都可将电视信息返回给用户。因此,在调用关键字时会执行此操作。因此,无法使用数据库等。
编辑2: 抱歉,我没有使用JSON或其他文件IO操作的经验,因为我通常处理CRUD。此外,知道我无法控制用户计算机等。这需要与PHP一起使用,默认安装Mac OS X时会安装它。仅此而已。如果有人可以解释JSON我很乐意使用它,我只是对它一无所知,如何使用它等等。
答案 0 :(得分:1)
对于配置文件,我建议进行以下设置。
我们假设这是config.php
:
<?php
return array(
'opt1' => 'value1',
'opt2' => 'value2',
);
然后,加载此配置:
<?php
$config = require 'config.php';
// $config['opt1'] == 'value1'
修改配置可以通过更改阵列并将其写回来完成:
$config['opt2'] = 'value2 but different';
file_put_contents('config.php', '<?php return ' . var_export($config, true) . ';');
要在您的案例中交换配置文件,您只需使用copy()
:
copy('12hrconfig.php', 'config.php');
答案 1 :(得分:1)
我不确定为什么你认为JSON有点矫枉过正。你真的只需要四个PHP方法 - 2个用于读/写文件,2个用于编码/解码JSON。哎呀,你甚至不需要理解JSON来使用它,如下所述,但是能够查看configfilename并读取它可能会很好,所以你可以随时学习一点JSON;)
基础知识是假设您有一个包含配置的数组,例如:
$configArray['key'] = 'value';
在json中写出来:
file_put_contents('configfilename', json_encode($configArray));
要阅读文件:
$configArray = json_decode(file_get_contents('configfilename'), true);
注意json_decode的第二个参数已经显式设置为true,因此$ configArray将是一个关联数组。这是个人偏好;默认情况下,它将成为一个对象。
(此答案主要基于有关reading/writing JSON的问题。)