获取帖子中特定URL的ID并将其保存在变量中

时间:2016-10-13 15:30:19

标签: php

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

[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"]

我需要从此网址7c6255ca14e901d2获取ID http://www.example.com/video-play.mp4?contentId=7c6255ca14e901d2并保存在要在网页上使用的变量中。

有人可以解释我该怎么办?

2 个答案:

答案 0 :(得分:0)

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

)

答案 1 :(得分:0)

它假设您将整个 [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;
}
相关问题