我有一个URL,可以在某个时候改变它的位置
我的网址看起来像
https://video.twimg.com/ext_tw_video/841791481534803968/pu/vid/320x180/egCAExYQdRBw08fb.mp4
https://video.twimg.com/ext_tw_video/841791481534803968/pu/vid/1280x720/GVsCGddpL9QoO4_B.mp4
https://video.twimg.com/ext_tw_video/841791481534803968/pu/vid/640x360/33qcUEzFw-WS0inJ.mp4
在这些网址中,我需要提取" 320x180" ," 1280x720" ," 640x360"还有更多,名单还在继续。
此外,链接更改有时,网址中没有/ pu / vid / part。我尝试使用Php爆炸功能,但随着位置的变化。很难找到它们。 例如
https://video.twimg.com/ext_tw_video/640x360/pu/vid/841791481534803968/33qcUEzFw-WS0inJ.mp4
对于常量部分我正在使用此代码
$breaker=(explode("/",$video->url));
$quality = $breaker[6];
但是因为他们改变了地方并且他们的价值观不同。它有什么不同的方法吗? 此外,如果值保持不变,那么我如何提取视频质量的URL
如果脚本发现质量是1280x720那么它会给我url.and将循环遍历它们以找到不同的静态视频质量?
https://video.twimg.com/ext_tw_video/841791481534803968/pu/vid/1280x720/GVsCGddpL9QoO4_B.mp4
答案 0 :(得分:1)
你应该能够在正则表达式\d+x\d+
上使用 preg_match()
或 preg_match_all()
,它与{{{ 1}}前后跟任意数字的数字。
x
可以看到 Regex101 here 和 PHPLiveRegex here 。
您可以更具体一点并使用preg_match("/\d+x\d+/", $input_line, $output_array);
preg_match_all("/\d+x\d+/", $input_lines, $output_array);
,这可以确保每个组中有1到4位数字,并且目标字符串由两个(?<=\/)\d{1,4}x\d{1,4}(?=\/)
括起来,尽管这是可能没必要。