PHP Regex模式,KODI季节海报提取器

时间:2020-04-27 13:20:00

标签: php regex arguments kodi

在kodi数据库的表tvshow的C06列中,我们具有此类数据:

<thumb aspect="poster">http://image.tmdb.org/t/p/original/xjm6uVktPuKXNILwjLXwVG5d5BU.jpg</thumb>
<thumb aspect="poster" type="season" season="6">http://image.tmdb.org/t/p/original/5msClP3ba8iOHvpuZjU6NyzwEB7.jpg</thumb>
<thumb aspect="poster" type="season" season="3">http://image.tmdb.org/t/p/original/xG6kJnvmGme2ZgLZASFrI1PFUnY.jpg</thumb>

我想使用正则表达式模式来提取http://链接:

1st case -> aspect="poster" => what is the general poster of the TV show
2nd case -> season="X" => Where X is the number of the season poster i want to get

我无法获得此问题的答案,我找到了一些正则表达式,但是它们只是提取了所有链接,因此无法像我这样过滤:

preg_match_all('#\bhttps?://[^,\s()<>]+(?:\([\w\d]+\)|([^,[:punct:]\s]|/))#', $TVShowPosterString, $match);

最诚挚的问候,

S。

1 个答案:

答案 0 :(得分:0)

内容似乎是文档片段(即没有单个根元素)。因此,您可以将当前数据环绕一圈,然后加载该数据(我在这里使用过<data>,但可能是您想要的任何东西)……

$data = '<thumb aspect="poster">http://image.tmdb.org/t/p/original/xjm6uVktPuKXNILwjLXwVG5d5BU.jpg</thumb>
<thumb aspect="poster" type="season" season="6">http://image.tmdb.org/t/p/original/5msClP3ba8iOHvpuZjU6NyzwEB7.jpg</thumb>
<thumb aspect="poster" type="season" season="3">http://image.tmdb.org/t/p/original/xG6kJnvmGme2ZgLZASFrI1PFUnY.jpg</thumb>';

$xml = simplexml_load_string("<data>{$data}</data>");
foreach ( $xml->thumb as $thumb )   {
    echo (string)$thumb.PHP_EOL;
}

提供链接...

http://image.tmdb.org/t/p/original/xjm6uVktPuKXNILwjLXwVG5d5BU.jpg
http://image.tmdb.org/t/p/original/5msClP3ba8iOHvpuZjU6NyzwEB7.jpg
http://image.tmdb.org/t/p/original/xG6kJnvmGme2ZgLZASFrI1PFUnY.jpg