1

curl で取得したページで正規表現を使用して値を取得するスクリプトがあります。

コード:preg_match('/<h2>([\d\,]+)<\/h2>/', $curl_exec, $matches);

print_r($matches)私がブラウザにいるとき、それは常にそこにあります。

このスクリプトを cron ジョブで使用して、10 分ごとに結果を取得しています。自分でテストして「php script.php」を使用すると、取得したいデータの未定義のインデックスが常に表示されますが、「php script.php」をもう一度実行すると機能します。誰がこれを引き起こしているのか知っていますか? 回避策はありますか?

$CurlHandle = curl_init($StatsUrl);
curl_setopt($CurlHandle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($CurlHandle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($CurlHandle, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/17.0 Firefox/17.0");

$Data = curl_exec($CurlHandle);

preg_match("/<h2>([\d\,]+)<\/h2>/", $Data, $Matches);

print_r($Data);

if(!isset($Matches[1])) exit('Irrecoverable error.');

$PlayerCount = str_replace(",", "", $Matches[1]);

$CurrentTime = time();
4

1 に答える 1

0

元々何が問題を引き起こしていたのかわかりませんがsystem('php script.php');、失敗した場合に備えてを追加したので、2回呼び出します。これは明らかにダクトテープソリューションですが、機能しています。

于 2012-11-07T08:15:51.180 に答える