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
在 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