外部 Web サイトからデータを取得しようとしています。その Web サイトには、5 分ごとに変化する 1 行のテキスト/URL があります。今、私はこの URL を取得し、この URL を使用して (5 分ごとに) フォームを送信し、DB に保存します (PHP ファイルの Cron ジョブ?) または、mysql DB に直接挿入します。
これは可能ですか?
私が理解しているように、あなたは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 を使用してください (私はほとんど使用していないので、ここでは助けになりません)。