获取文章中特定URL的id并将其保存在一个变量中


Get id of a particular URL inside the post and save it in a variable

在我的帖子中,视频代码如下:

[videojs mp4="http://www.example.com/video-play.mp4?contentId=7c6255ca14e901d2" poster="https://2.bp.example.com/-lSTjYuDBiAQ/VvST8Z7z2OI/AAAAAAAAGPY/c8yAE675bLEMYI-OMwtauCiXeu1yZPZaw/s1600/fundososvideos.jpg" preload="none" controls="controls" width="100%" height="400"]

我需要从这个url http://www.example.com/video-play.mp4?contentId=7c6255ca14e901d2获取ID 7c6255ca14e901d2,并保存在一个要在页面上使用的变量。

谁能告诉我该怎么做?

在PHP中,尝试使用正则表达式。如果示例并不总是遵循此格式,则可能需要调整正则表达式。

$re = '/'[videojs mp4='"(.*contentId=(.*?))'"/';
$str = '[videojs mp4="http://www.blogger.com/video-play.mp4?contentId=7c6255ca14e901d2" poster="https://2.bp.blogspot.com/-lSTjYuDBiAQ/VvST8Z7z2OI/AAAAAAAAGPY/c8yAE675bLEMYI-OMwtauCiXeu1yZPZaw/s1600/fundososvideos.jpg" preload="none" controls="controls" width="100%" height="400"]';
preg_match_all($re, $str, $matches);
// Print the entire match result
print_r($matches);

上面的结果应该是

Array
(
    [0] => Array
        (
            [0] => [videojs mp4="http://www.blogger.com/video-play.mp4?contentId=7c6255ca14e901d2"
        )
    [1] => Array
        (
            [0] => http://www.blogger.com/video-play.mp4?contentId=7c6255ca14e901d2
        )
    [2] => Array
        (
            [0] => 7c6255ca14e901d2
        )
)

假设你得到整个[videojs mp4="uri" -…作为字符串。现在,您想要处理它并将其分配给几个不同的变量以供将来使用。

$video_string = '[videojs mp4="http://www.blogger.com/video-play.mp4?contentId=7c6255ca14e901d2" poster="https://2.bp.blogspot.com/-lSTjYuDBiAQ/VvST8Z7z2OI/AAAAAAAAGPY/c8yAE675bLEMYI-OMwtauCiXeu1yZPZaw/s1600/fundososvideos.jpg" preload="none" controls="controls" width="100%" height="400"]';
if (preg_match('/mp4="(.*)"'sposter/', $video_string, $matches1)) {
    $url = $matches1[1];
    $id = explode('=',parse_url($url)['query'])[1];
    echo 'From Video string I get Id= '.$id . ' & url = '.$url;
}