1

作業中のものに構成ファイルを使用しています。その構成ファイルには、次のような行があり$twelveHourTimeEnabled = true;ます。これで true を false に切り替えられるようにしたいのですが、その行だけを から に変更する方法がわかりませtruefalse

現在、私は 2 つのファイルを切り替える別のファイルを使用していますが、これは非常に非効率的であることはわかっています。

$fn = "config.php"; 
$file = fopen($fn, "w+"); 
$size = filesize($fn); 

$twelveHourConfig = "12hrconfig.php";
$twelveHourConfigFile = file_get_contents($twelveHourConfig);

fwrite($file, $twelveHourConfigFile);

fclose($file);

他の 2 つのファイルを読み込む必要なく、true 値を false に、またはその逆に切り替えるにはどうすればよいでしょうか?

編集:

このプロジェクトは、ユーザーがどこにいても TV 情報を返すデスクトップ アプリ (Mac OS X 用の Alfred アプリ) 用の PHP プラグインです。このため、このアクションはキーワードが呼び出されたときに実行されます。このため、データベースなどを使用する方法はありません。

編集 2: 申し訳ありませんが、私は通常 CRUD を扱っているため、JSON やその他のファイル IO 操作の経験はありません。また、私はユーザーのマシンなどを制御できないことを知っておいてください。これは、誰かが Mac OS X をインストールするときにデフォルトでインストールされる PHP で機能する必要があります。それ以上のことはありません。誰かがJSONを説明できるなら、私はそれを喜んで使用します.JSONについて、使用方法などについて何も知りません.

4

2 に答える 2

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');
于 2013-03-21T00:21:54.417 に答える
1

JSON がやり過ぎだと思う理由がわかりません。これには実際には 4 つの PHP メソッドしか必要ありません。ファイルの読み取り/書き込み用に 2 つ、JSON のエンコード/デコード用に 2 つです。以下で説明するように JSON を使用するために JSON を理解する必要はありませんが、configfilename を見てそれを読み取ることができると便利な場合があるため、少しずつ JSON を学ぶことができます ;)

基本は、構成を含む配列があるとしましょう。たとえば、次のようになります。

$configArray['key'] = 'value';

これをjsonで書き出すには:

file_put_contents('configfilename', json_encode($configArray));

ファイルを読み取るには:

$configArray = json_decode(file_get_contents('configfilename'), true);

$configArray が連想配列になるように、json_decodeの 2 番目の引数が明示的に true に設定されていることに注意してください。これは個人的な好みです。デフォルトではオブジェクトになります。

(この回答は、 JSON の読み取り/書き込みに関するこの質問に大きく基づいています。)

于 2013-03-21T00:32:40.850 に答える