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');在失败的情况下添加了一个,所以它调用了两次。这显然是一种管道胶带解决方案,但它正在发挥作用。

于 2012-11-07T08:15:51.180 回答