0

外部 Web サイトからデータを取得しようとしています。その Web サイトには、5 分ごとに変化する 1 行のテキスト/URL があります。今、私はこの URL を取得し、この URL を使用して (5 分ごとに) フォームを送信し、DB に保存します (PHP ファイルの Cron ジョブ?) または、mysql DB に直接挿入します。

これは可能ですか?

4

1 に答える 1

2

私が理解しているように、あなたは2つのタスクを取得したいと考えています:

1) 外部ページから URL を取得し、DB に保存する

2) 上記を 5 分ごとに実行します。

どうぞ:

1) CURL は良い方法です。すべてのサーバーで使用できる必要があります。サーバーで制限されていない場合は、 file_get_contents を試すこともできます。カール関数は次のようになります。

<?php
function curl_get_file_contents($URL)
    {
        $c = curl_init();
        curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($c, CURLOPT_URL, $URL);
        $contents = curl_exec($c);
        curl_close($c);

        if ($contents) return $contents;
            else return FALSE;
    }
?>

この関数は、ページ コンテンツを含む文字列を返します。おそらく、そこから URL を抽出する必要があります。URL の長さが一定の場合は PHP の SUBSTR を使用するか、STRPOS を使用します。URL を取得したら、それを DB に保存します。フォームを使用する必要はありません。

2) スクリプトを 5 分ごとに実行する最も簡単な方法は、javascript を使用することです。次のようになります。

<html>
<head>
<script type="text/JavaScript">
<!--
function timedRefresh(timeoutPeriod) {
    setTimeout("location.reload(true);",timeoutPeriod);
}
//   -->
</script>
</head>
<body onload="JavaScript:timedRefresh(300000);">
<?php // your code here

このページは 5 分 (30 万ミリ秒) ごとに更新され、そのたびに PHP スクリプトが実行されますが、ブラウザーで常に開いておく必要があります。それが問題です。CRON を使用してください (私はほとんど使用していないので、ここでは助けになりません)。

于 2012-09-10T12:28:20.287 に答える