2011-09-09 11 views
2

私はかなり新しいです。PHPで変更されたファイルの内容を取得する方法

コンテンツを頻繁に変更するテキストファイルがあります。私は、ファイルの内容を変更したらすぐに取得し、html形式に挿入したいと考えています。 phpでfilemtime関数を使いたかったのですが、どうやってそれを行うのか正確にはわかりませんでした。私はdo whileループを入れました:

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

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

どうすればよいですか?他にも役立つ機能があれば?

は、論理的に間違っているwhileこのスレッド

答えて

0

あなたの状態を見ていただきありがとうございます。

$newtime == $oldtime 
+0

while whileループ条件、もちろん – IvanGL

0

それはあなたが割り当てるのではなく、比較されているので、実行し続ける:あなたはそれを比較する必要があります割り当て

$newtime = $oldtime 

を行っています。

この:

while ($newtime = $oldtime); 

はこのことする必要があります

while ($newtime == $oldtime); 
1
はあなたのコードのバグを修正するために、比較(= ==用)へのあなたの割り当てを切り替え

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

理想的には、データが変更されたかどうかを知らせるトリガーなどの楽しいことを使用できる、データベース内にそのファイルに保存されている情報を配置するのが理想的です。さもなければ、あなたの解決策は非常に効率的ではない変更のためにファイルを無限にテストしようとクロックサイクルを無駄にするでしょう。

+0

助けてくれてありがとうございます。私のスクリプトには==が付いていますが、それでもPHPの最大実行時間のためにスクリプトはタイムアウトします。データベースにアクセスできない場合、どの代替方法を使用できると思いますか? – Momo

0

ファイルを頻繁にポーリングするのは、

ソースデータをフォーマットするHTTPリクエストのエンドポイントにphpスクリプトを置くだけでは(必要であれば、ソースファイルがリモートの場合はキャッシュすることができます)。またはinotifyを使用して静的ファイルの生成をトリガーしますか?

関連する問題