0

我编写了一个 PHP 函数来获取 URL 的加数

function makeApiCall($destinationUrl, $stringOfParams){
  $curl = curl_init();
  echo $destinationUrl.$stringOfParams."<br>";
  curl_setopt($curl, CURLOPT_URL, $destinationUrl.$stringOfParams);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  $result = curl_exec($curl);
  curl_close($curl);
  echo $result;
 }

在输入https://plusone.google.com/u/0/_/+1/fastbutton目标 URL 并输入正确的参数字符串时,我收到的结果$result是 HTML。问题是我想使用 PHP 来获取计数而不是使用 JavaScript。

我怎样才能做到这一点?

4

1 回答 1

0

使用preg_match,您可以实现它。

假设您正在调用这样的网址:

https://plusone.google.com/_/+1/fastbutton?bsv=pr&url=http://www.google.com

您正在寻找:

<div id="aggregateCount" class="t1">118k</div>

或者

<div id="aggregateCount" class="t1">12</div>

所以你可以执行:

preg_match('/\<div id=\"aggregateCount\" class=\"t1\"\>\>?([0-9]*k?)\<\/div\>/i', $result, $matches);

并且$matches将是:

Array
(
    [0] => <div id="aggregateCount" class="t1">118k</div>
    [1] => 118k
)

编辑:

运行示例后,似乎谷歌在使用 curl 时返回了不同的数字,例如 on http://www.google.com,它返回:

<div id="aggregateCount" class="t1">>9999</div>

所以我更新了正则表达式来处理>.

于 2012-06-13T08:00:01.997 回答