2017-03-20 10 views
1

ウェブページをテキストファイルに自動的に保存するか、少なくとも毎秒保存しますか?PHPをファイルに自動的に書き込む方法を教えてください。

<?php 

$homepage = file_get_contents('www.example.com'); 
echo $homepage; 


$myfile = fopen("file.txt", "w") or die("Unable to open file!"); 

while(true) { 

    fwrite($myfile, $homepage); 

} 
    fclose($myfile); 

?> 

しかし、それは、whileループが停止するまでの ファイルが書き込まれることはありません動作しませんでした。だから私はそのようなPHPファイルを書きました。 誰かが私を助けることができますか?私はPHPをすべての時間または少なくとも数分間実行する必要があります。どうやってやるの ?私はこのような何かのために行くだろう

+1

エンドレスに同じコンテンツをファイルに書き込む点は何ですか?だからあなたのコードには2つのことが間違っています。1.無限ループ。同じ内容を何度も繰り返し書く。これがあなた自身でこれらの問題を解決するのに役立つことを願っています。 –

+0

ポイントは私はそのウェブサイトから来るデータが必要です、データは誰かの体温です。 –

+1

はい、httpでデータを読み取る理由があることを理解しています。 'sleep()'を実行して1秒間実行を一時停止し、秒をカウントしてループを中断させ、 'file_get_contents()'をループの中に入れます:あなたはページを何度も取得したいですか? ? –

答えて

1

(ただしテストしていません)

<?php 
header("Refresh:30"); // The page will be refreshed every 30 seconds 
        // To avoid max_execution_time errors 

$myfile = "file.txt"; 

for ($i=0; $i < 30; $i++) { 
    $homepage = file_get_contents("http://www.example.com"); 
    echo $homepage; 
    file_put_contents($myfile, $homepage); 
    sleep(1); // Do it every second 
} 

ファイルを閉じないため、2番目は、あまりにも多くの時間であれば、あなたの代わりに

1

usleepを使用することができますループの中。そして、遅れも加えてください。これに変更してください:

<?php 
$homepage = file_get_contents('www.example.com'); 
echo $homepage; 
while(true) { 
    $myfile = fopen("file.txt", "w") or die("Unable to open file!"); 
    fwrite($myfile, $homepage); 
    fclose($myfile); 
    sleep(1); 
} 
?> 

ウェブサーバーでこれを実行している場合、制限時間を超過することに注意してください。

1

まず、ループ内にsleepを使用して、パフォーマンスへの影響を最小限に抑えることを検討する必要があります。書き込みのたびに、ディスクにデータを保持するためにflushを呼び出す必要があります。ターゲットサイトにDOS攻撃の形で過負荷がかかる可能性もあるので、その結果に注意する必要があります。

1

これはテストされていませんが、言葉を必要とします...しかし正直なところ、これを行うタイマーでAjaxを使用する方が良いです。

header("Refresh:60"); 

function writeToPage($page,$file){ 

    $content = file_get_contents($page); 

    file_put_contents($file,$content); 

} 

$page = "www.example.com"; 

$file = "file.txt"; 

$write = true; 

while($write === true) { 

    sleep(5); 

    writeToPage($page,$file); 

} 
関連する問題