PHP匹配所有

时间:2013-04-30 17:04:56

标签: php regex preg-match-all

我正在使用一个名为Movie Poster的wordpress插件,它从imdb中获取电影信息并在帖子中显示。如何在第一个逗号之前抓住第一个Production Co?我对此代码的工作原理感到困惑。这是抓住所有制作公司的代码:

$arr['productions'] = array();
foreach($this->match('/<a.*?>(.*?)<\/a>/ms', 
           $this->match('/Production Co.?:(.*?)(<\/div>|See more)/ms', $html, 1)
        , 1) as $m)
    array_push($arr['productions'], $m);`

感谢您的时间

1 个答案:

答案 0 :(得分:1)

所以你只想要一个生产公司的信息?

为什么不摆脱foreach呢?您现在有一个循环经历并寻找所有生产公司并返回。

或者您可以将其更改为While statement并添加一个计数器,使其仅通过一次。

$arr['productions'] = array();
$i = 0;
while($i < 1) {
   $m = $this->match('/<a.*?>(.*?)<\/a>/ms', 
       $this->match('/Production Co.?:(.*?)(<\/div>|See more)/ms', $html, 1)
    , 1);
   array_push($arr['productions'], $m);
   $i++;
}

不确定语法是否完全正确,但应该让您朝着正确的方向前进。请记住,我不熟悉插件,或者我是否完全理解您要完成的任务。