1

さて、私はこのややトリッキーな質問に対する答えを探していました。JavaScript 配列のリストを使用してランダムな Google 検索を実行するサイトがあります。ユーザーが独自の検索トピックを入力できるようにする、他のサイトと連携する別のサイトがあります。これらのユーザーが入力した値は、私が遊び場と呼んでいる巨大なテキスト ファイルに入れられます。

私がやりたいことは、Php スクリプトがユーザーが入力した値を JavaScript 配列に書き込むようにすることですが、最後に入力された JavaScript 配列の配列番号 id に 1 を加えたものを使用します。

例: 最後に入力された配列は、rand[60] = "hello"; Jon Doeが入力したもの"test"です。php スクリプトはtopics.jsファイルに書き込みます。rand[61] = "test";

私はすでにphp用のファイル書き込みスクリプトを持っています...

<?php
//Idea Poster
$idea = $_POST['idea'];

//Idea DATA
$data = "$idea \n\n ";

//Idea Writer
$fh = fopen("Ideas.txt", "a");
fwrite($fh, $data);

//Closer
fclose($fh);
//Reload Page
$page = "POSindex.php";
$sec = "0";
header("Refresh: $sec; $page");
?>
4

3 に答える 3

1

書き込みスクリプトをそのままにして、.txt ファイルを読み取り、オンザフライで JSON 配列に変換するスクリプトを作成できます。

有効な JS ファイルを作成するとします。

echo 'var topics = ', json_encode(file('Ideas.txt'));

最適化

上記のスクリプトは常にファイルを読み取り、コンテンツを JSON にエンコードします。これは、キャッシュ ファイルを保持することで最適化できます。

if (!file_exists('topics.json') || filemtime('topics.json') < filemtime('Ideas.txt')) {
    // changes were made to Ideas.txt
    $topics_js = 'var topics = ' . json_encode(file('Ideas.txt'));
    // update cache file
    file_put_contents('topics.json', $topics_js);
    echo $topics_js;
} else {
    // read from cached file
    readfile('topics.json');
}
于 2012-05-16T02:29:27.743 に答える
0

そもそもデータをjson形式で保存するだけです。

<?php
//Idea Poster
$idea = $_POST['idea'];

//Idea DATA
$data = "$idea \n\n ";

//Idea File (contains a json array)
$fh = fopen("Ideas.json", "r");
$contents = fread($fh, filesize("Ideas.json"));
fclose($fh);

// decode json
$ideas = json_decode($contents);
// add the new entry
$ideas[] = $idea;

// write it out 
$fh = fopen("Ideas.json", "w");
fwrite($fh, json_encode($ideas));
fclose($fh);

//Reload Page
$page = "POSindex.php";
$sec = "0";
header("Refresh: $sec; $page");
?>

または、そのファイルを 1 行のプレーン テキストにする必要がある場合は、php の「file」関数を使用してそれを php 配列として読み込み、それを「json_encode」で実行して json 配列を取得できます。ファイル内のダブルスペーシングについて何かしなければならないかもしれませんが、基本的には探しているものを取得する必要があります。

于 2012-05-16T02:24:15.303 に答える
0

代わりに JSON 配列を使用してください。ファイルから JSON を読み取り、デコードして、要素を配列に追加し、エンコードして、書き出します。

于 2012-05-16T02:13:26.693 に答える