2013-04-30 56 views
2

我使用了一个称为电影海报的wordpress插件,它从imdb中抓取电影的信息并将其显示在帖子中。在第一个逗号之前我如何抓住第一个生产公司?我很困惑这个代码是如何工作的。下面是该抓住所有的制作公司代码:PHP全部匹配

$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);` 

感谢您的时间

+4

你不应该用正则表达式解析html。这就是为什么我们有http://php.net/dom – 2013-04-30 17:06:03

+0

感谢您的快速回复。我能做些什么来解决这个问题? – Roku 2013-04-30 17:08:08

+0

@ user2336811:联系该插件的开发人员,告诉他关于您的问题并协商解决方法。 – 2013-04-30 17:15:40

回答

1

所以你只是想一个制作公司的信息?

为什么不只是摆脱foreach?你目前有一个循环,并寻找所有Production Co.并返回。

或者您可以将其更改为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++; 
} 

不知道语法是否完全正确,但应该让你朝正确的方向。请记住,我对插件不熟悉,或者我已经完全理解你想要完成的工作。

+0

感谢您的回答,但我得到这个错误“解析错误:语法错误,意外的T_AS” – Roku 2013-04-30 17:22:35

+1

@ user2336811再试一次,我编辑了代码 – HamZa 2013-04-30 17:29:51

+0

很好的编辑。 – EnigmaRM 2013-04-30 17:32:12