1
我有一個腳本,使用正則表達式來獲取卷頁檢索的頁面上的一些價值。第一次請求PHP未定義索引
代碼: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();
也許我的評論有點偏離主題,但我認爲它很有用。 [不要使用正則表達式解析html](http://stackoverflow.com/a/1732454/1283847) – Leri
是的,是的,我知道。這並不能真正解決我的問題,因爲我已經使用了DOM解析器(simplehtmldom)等,並且發生了同樣的情況。 – Steve
嘗試添加'print_r($ curl_exec)'來查看你從cURL回來的內容。 – Barmar