0

我有一个来自另一个站点的 iMDb-Scraper。它工作得很好,现在 iMDb 改变了它的 html 输出,正则表达式不再找到海报。我是正则表达式的菜鸟,所以也许有人可以帮助我

这是行

$arr['poster'] = $this->match('/img_primary">.*?<img src="(.*?)".*?<\/td>/ms', $html, 1);

和功能(也许不感兴趣)

function match_all($regex, $str, $i = 0) {
    if(preg_match_all($regex, $str, $matches) === false)
        return false;
    else
        return $matches[$i];

这是来自 iMDb 的特定 HTML 输出

<td rowspan="2" id="img_primary">
<div class="image">
<a href="/media/rm3465715968/tt1905041?ref_=tt_ov_i" > 
<img height="317"
     width="214"
     alt="Fast and the Furious 6 (2013) Poster"
     title="Fast and the Furious 6 (2013) Poster"
     src="http://ia.media-imdb.com/images/M/MV5BMTM3NTg2NDQzOF5BMl5BanBnXkFtZTcwNjc2NzQzOQ@@._V1_SX214_.jpg"
    itemprop="image" />
        </a>
</div></td>

有人可以更改我找回 jpg 的正则表达式吗?

4

1 回答 1

0

如果你改变它怎么办

'/img_primary">.*?<img.*?src="(.*?)".*?<\/td>/ms'

这对我有用:

<?php
error_reporting(E_ALL);
ini_set('display_errors',1);

$regexp = '/img_primary">.*?<img.*?src="(.*?)".*?<\/td>/ms';

$string = file_get_contents('test.html');

$matches = array();
preg_match_all($regexp,$string,$matches);
var_dump($matches);
于 2013-04-06T15:07:14.577 回答