为什么我的preg_match结果加倍?

Sar*_*ara 5 php

慢慢地,但肯定的是,我正在组建一个供个人使用的网站,在那里我搜索电影的名称,它返回给我的元音评级.这是我到目前为止所得到的:

$web = file_get_contents("http://www.metacritic.com/movie/the-lion-king"); 

preg_match(
    '/<span class="score_value" property="v:average">(.*?)<\/span>/s',
    $web,
    $match
 );

foreach ($match as $score) {
    $sc = $score;
    echo $sc;
}
Run Code Online (Sandbox Code Playgroud)

结果:

8383
Run Code Online (Sandbox Code Playgroud)

它应该只返回83而不是8383.

我指出了metacritic评级所在的位置,因为我需要获取该信息.我不确定它是否正确?可能是一些非常粗糙的工作,我不太了解preg_match,在线文档没有帮助.

有人可以帮帮我吗?

Cyc*_*ode 11

你应该只是回应,$score[1]因为这是你的第一个捕获的括号子模式将去的地方.

阅读preg_match的文档


Tim*_*m G 5

供参考:

array(2) {
  [0]=>
  string(56) "<span class="score_value" property="v:average">83</span>"
  [1]=>
  string(2) "83"
}
Run Code Online (Sandbox Code Playgroud)

手册:

如果提供了匹配,那么它将填充搜索结果.$ matches [0]将包含与完整模式匹配的文本,$ matches [1]将具有与第一个捕获的带括号的子模式匹配的文本,依此类推.