2

私はphpにかなり慣れていません。

コンピューターにテキストファイルがあり、コンテンツが頻繁に変更されます。ファイルが変更されたらすぐにその内容を取得して、htmlフォームに挿入したいと思います。PHPでfilemtime関数を使用したかったのですが、その方法が正確にわかりませんでした。私はdowhileループを入れました:

$oldtime=filemtime($filename);
$newtime = $oldtime;
do {
    sleep (1);
    $newtime = filemtime($filename);
    echo "old: $oldtime"."<br />"; 
    echo "new: $newtime";
}
while ($newtime == $oldtime);

しかし、これは実行を続けます。私もいくつかのifステートメントを実行しようとしましたが、これも私の側では機能しません。

これを行う方法を提案していただけますか?役立つかもしれない他の機能があれば?

このスレッドを見ていただきありがとうございます

4

4 に答える 4

1

割り当てを比較(= for ==)に切り替えて、コードのバグを修正します。

ただし、ここにはもっと問題があるかもしれません。情報が変更されたかどうかを知りたい場合、ファイルは情報を保存するのに最適な場所ではありません。

理想的には、そのファイルに保存されている情報をデータベース内に配置します。ここでは、トリガーなどの楽しい機能を使用して、データが変更されたかどうかを通知できます。そうしないと、ソリューションはファイルの変更を際限なくテストしようとしてクロックサイクルを浪費することになり、これはあまり効率的ではありません。

于 2011-09-09T10:06:19.097 に答える
0

の条件whileは論理的に正しくありません。あなたは課題をやっています

$newtime = $oldtime

それは比較であるはずです:

$newtime == $oldtime
于 2011-09-09T10:02:40.573 に答える
0

比較するのではなく割り当てているため、実行を続けます。

これ:

while ($newtime = $oldtime);

これである必要があります:

while ($newtime == $oldtime);
于 2011-09-09T10:04:39.027 に答える
0

ファイルを頻繁にポーリングすることは、更新を公開するための厄介な方法の一種です。

ソースデータをフォーマットするHTTPリクエストのエンドポイントにphpスクリプトを配置しないのはなぜですか(ソースファイルがリモートの場合は、オプションでキャッシュします)。または、inotifyを使用して静的ファイルの生成をトリガーしますか?

于 2011-09-09T11:52:06.540 に答える