我有一个外部文件,使用带有令牌和过期日期的动态网址在我的网站上呈现视频。它看起来像这样:
https://www.thevideositeurl.com/embed/231231/
我以这种方式将其添加到我的页面:
$vid = 231231;
$url = file_get_contents("https://www.thevideositeurl.com/embed/{$vid}/")
echo $url ;
然后它呈现javascript以及一些html
<script type="text/javascript">
var sources = [
{
type:"video/mp4",
src:"https://cdn.myvenue.com/media/clips/491355/clip_saple_hd.mp4?expire=1525179619&token=1e52da03af581764724c0e2c428a9faa",
res:"VideoSample",
label: "VideoSample"
}
];
videojs("video", {
nativeControlsForTouch: true,
autoplay: false,
controls: true,
width:'100%',
fluid: true,
loop: false,
muted: false,
poster: "https://cdn.static.myvenue.com/media/assets/images/image.jpg",
etc., etc., etc.
问题在于我只需要获取视频网址(请记住:它是动态的):
https://cdn.myvenue.com/media/clips/491355/clip_saple_hd.mp4?expire=1525179619&token=1e52da03af581764724c0e2c428a9faa
这可能吗?
答案 0 :(得分:2)
假设您想要在sources
数组中找到第一个对象(或者您只有一个),您可以获得这样的视频网址;
var videoURL = sources[0].src;
根据@ Moti正则表达式
的修改版本更新//代码
echo $url;
preg_match('/https:\/\/cdn\.myvenue\.com\/[^\"]*/', $url, $matches, PREG_OFFSET_CAPTURE);
$videoURL = ($matches[0][0]);
echo $videoURL;
答案 1 :(得分:1)
假设您有一个变量名scriptSrc
的返回文本此代码将为您提供网址
const scriptSrc = `<script type="text/javascript">
var sources = [
{
type:"video/mp4",
src:"https://cdn.myvenue.com/media/clips/491355/clip_saple_hd.mp4?expire=1525179619&token=1e52da03af581764724c0e2c428a9faa",
res:"VideoSample",
label: "VideoSample"
}...`
const url = scriptSrc.match(/https:\/\/cdn\.myvenue\.com\/[^"]*/)
console.log(url)
编辑:在PHP中,您可以匹配相同的正则表达式
$url = file_get_contents("https://www.thevideositeurl.com/embed/{$vid}/")
preg_match('/https:\/\/cdn\.myvenue\.com\/[^\"]*/', $url, $matches, PREG_OFFSET_CAPTURE);
$videoURL = ($matches[0][0]);
echo $videoURL;