PHP 正则表达式模式,KODI 赛季海报提取器

PHP Regex patern, KODI season poster extractor

在 kodi 数据库中,table 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:// link :

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

我找不到这个问题的答案,我找到了一些正则表达式,但它们只是提取了所有 link,无法按我的需要进行过滤,比如这个:

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

此致,

S.

看起来好像内容是文档片段(即没有单个根元素)。所以你可以绕一圈当前数据然后加载它(我在这里使用了 <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