1

私がやろうとしていることに名前があるかどうかさえわからないので、この質問のタイトルを正しく形成することはできませんでした。

次のような外部ファイル (たとえば、settings.txt と呼ばれる) があるとします。

template:'xaddict';
editor:'true';
wysiwyg:'false';

これらは単純な名前:値のペアです。次の値を持つphp変数になるように、phpにこのファイルを処理させたいと思います。

$template = 'xaddict';
$editor = 'true';
$wysiwyg = 'false';

これらの変数がいくつあるかわかりません。

どのように行ってこれを行うべきですか?

ファイル内のデータは単純な名前:値のペアです。ネストも複雑なデータもありません。すべての名前を $name に変換する必要があり、すべての値を 'value' に変換する必要があります。それが本当に文字列であるかどうかは関係ありません。

4

4 に答える 4

6
$settings = json_decode(file_get_contents($filename));

ファイルが有効な JSON 形式であると仮定します。そうでない場合は、そのままマッサージするか、別のアプローチを使用する必要があります.

于 2009-08-18T13:53:50.123 に答える
1

「editor:'true'」の「true」を文字列またはブール値として解釈しますか?時々文字列、時にはブール値の場合、どのようにしてどれを知るのですか?

「number='9'」がある場合、「9」を文字列として解釈しますか、それとも整数として解釈しますか?'09'は10進数ですか、それとも8進数ですか?"number = '3.14'":stringまたはfloatはどうですか?時々一方、時にはもう一方の場合、どのようにしてどちらを知るのですか?

値の中に「'」(一重引用符)がある場合、それはエスケープされていますか?もしそうなら、どのように?

配列データへの期待はありますか?

等。

編集:これは、サンプル入力を使用してサンプルデータを取得する最も簡単な方法です。

$file = 'test.csv';
$fp = fopen($file, 'r');
while ($line = fgetcsv($fp, 1024, ':')) {
    $$line[0] = $line[1];
}
于 2009-08-18T14:11:14.953 に答える
1

JSON を使用する場合は、次のようなものを使用できます。

extract(json_decode(file_get_contents('settings.json')));

抽出を使用すると危険な場合があるため、これらの設定を配列に保存することをお勧めします。

$settings = json_decode(file_get_contents('settings.json'));
于 2009-08-18T13:55:36.300 に答える
0

file() 関数を使用してファイルを配列に読み込む必要があります。次に、それを循環する必要があります。各行 (file() 関数は配列を返し、項目ごとに 1 行)、行が空白でないかどうかを確認します。 、次に「:」文字で爆発()し、断片をトリミングして配列に入れます。次のような配列を獲得することになります。

[template] = xaddict
[editor] = true

その後、この情報を使用できます。

これを自動的にローカル変数に変換しないでください: これは、セキュリティ リスクを導入する優れた方法であり、潜在的に非常にあいまいなバグ (この解析によって導入されたものによって隠されているローカル変数) をもたらします。

于 2009-08-18T13:58:50.430 に答える