0

保存したデータを使用して後で使用するアプリケーションに取り組んでいます。私はデータベースを使用できないので、これはファイルベースでなければなりません。

物事は次のように機能します:

  • すべての行にhost:serviceを含むhosts.txtというファイル名(異なるホストとサービス)。
  • 私のPHPファイルは、txtを1行ずつ読み取り、区切り文字「:」で分割し、受信したばかりのデータを使用してリクエストを行います。

ここまで、かっこいい。また、ファイルの最後に追加できる別のファイル(HTMLフォーム)があります。しかし、私の問題は次のとおりです。

それをファイルに追加したりファイルから削除したりできるようにしたいので、次のチェックが行われるとき(チェックは30秒ごとに行われます)にデータを更新する必要があります。

例:

host.txtには次のものが含まれています。

host1:service1
host1:service2
host2:service2
host3:service1

ここで、新しいhost:serviceをリストに追加できるようにします(テキストファイルの最後に新しいデータを追加することですでにこれを行っています。これは、phpが再度読み取るときに次のチェックに含まれます。さて、ファイルからhost:serviceを削除するにはどうすればよいですか?

つまり、ファイルを読んだ後、PHPは次のよ​​うなものを作成します。

Host: Host1   |    Service: Service1   |  Status: Warning (this will depend on the HTTP request I will make)     (X)
Host: Host1   |    Service: Service2   |  Status: OK     (X)
Host: Host3   |    Service: Service1   |  Status: Critical     (X)

(X)をクリックするだけで、リスト(およびファイル)からhost:serviceを削除できるようにしたいと思います。これは可能ですか?私は少し迷っています(データベースを操作するのは簡単ですが、このプロジェクトには参加できません)。

私は何かが明確になることを願っています。よろしくお願いします。

4

2 に答える 2

1

だいたい:

1)テキストファイルのEntersを分解して、番号付きの配列を作成します。

2)htmlの各行にIDを設定します(各行番号の整数)

3)「クリック」リスナーを持つjquery関数を作成します

4)入力として整数を持つAJAXスクリプトを作成します

5)hosts.txtをもう一度読み、番号に対応する行を削除します(unset($ array ['linenumber']))

6)Enterで内包し、ファイルに書き込みます(古いものを上書きします)

7)ページをリロードします(または行を非表示にします)

于 2013-03-27T11:21:15.433 に答える
1

PHPでは、次のようなことを行います。

コード

$string = 'host1:service1
host1:service2
host2:service2
host3:service1';

$splitted = explode("\n", $string);

$data = array();

foreach ($splitted as $key => $value) {
    $data[$key] = explode(':', $value);
}

echo '<pre>';
print_r($data);
echo '<pre>';

これで、特定の値が一致するか、特定のカテゴリであるかを確認できる構造化データができました。これで、出力の制御が完全に手に入ります。

出力

Array
(
    [0] => Array
        (
            [0] => host1
            [1] => service1
        )

    [1] => Array
        (
            [0] => host1
            [1] => service2
        )

    [2] => Array
        (
            [0] => host2
            [1] => service2
        )

    [3] => Array
        (
            [0] => host3
            [1] => service1
        )

)

それでもデータの出力に問題がある場合は、コメントでお気軽に質問してください。回答を更新します。

于 2013-03-27T11:27:15.017 に答える