【发布时间】:2013-03-21 00:00:26
【问题描述】:
我正在为我正在处理的事情使用配置文件。在该配置文件中,我有一行 $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);
如何在不需要读取其他两个文件的情况下将 true 值切换为 false,反之亦然?
编辑:
这个项目是一个用于桌面应用程序(Mac OS X 的 Alfred 应用程序)的 PHP 插件,它可以将电视信息返回给无论身在何处的用户。因此,在调用关键字时会执行此操作。因此,无法使用数据库等。
编辑 2: 抱歉,我没有 JSON 或其他文件 IO 操作的经验,因为我通常处理 CRUD。另外,要知道我无法控制用户机器等。这需要与 PHP 一起使用,当有人安装 Mac OS X 时,默认情况下会安装 PHP。仅此而已。如果有人可以解释 JSON,我会很乐意使用它,只是我对它一无所知,如何使用它等等。
【问题讨论】:
-
上下文不清楚,但它看起来像一个“时间”的东西,那么为什么不是一个带时间戳的数据库呢?
-
嗯,你可以用ini配置,xml或者json文件代替,更安全,更简单。
-
添加到马里奥所说的;您应该记住,如果确切的短语 (
$twelveHourTimeEnabled = true;) 出现在评论或 if-else 构造中,则可能会破坏目的。始终检查是否有更多匹配项,然后正确处理它们。如果可能的话,最好将此类设置存储在数据库中,这样会更干净/更易读且更易于访问。题外话,但只是说。 -
谢谢大家。遗憾的是,这不是一个选项,因为它不是基于 Web 的应用程序,而是 Alfred App for Mac OS X 的扩展。因此,配置文件被用于允许用户设置的关键字触发更改配置文件以便于使用。
-
我会将您的所有数据存储在配置文件中,而不是 PHP 文件中。 JSON 很容易使用,因为您可以打开文件,读入,json_decode() 将其放入对象或数组中,修改项目,然后json_encode() 并再次写入文件