0

URLのプラス1カウントを取得するPHP関数を作成しました

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;
 }

宛先URLとして入力https://plusone.google.com/u/0/_/+1/fastbuttonし、パラメーターの正しい文字列を入力しているときに、受け取った結果$resultはHTMLです。問題は、JavaScriptを使用せずに、PHPを使用してカウントを取得したいということです。

どうやってやるの?

4

1 に答える 1

0

を使用してpreg_match、それを達成することができます。

あなたがそのようなURLを呼んでいると仮定します:

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
)

編集:

例を実行した後、Googleはcurlを使用すると別の数値を返すようです。たとえば、onhttp://www.google.comの場合、次のようになります。

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

そこで、を処理するように正規表現を更新しました>

于 2012-06-13T08:00:01.997 に答える