我正在寻找一个正则表达式,它将抓取所有具有以下数组扩展名的 url:
Array
(
[0] => mp4
[1] => m4v
[2] => webm
[3] => ogv
[4] => wmv
[5] => flv
)
该数组由一个名为 WordPress 的内部函数返回,wp_get_video_extensions()
并且是 WordPress 识别的视频 URL。
一个内容块看起来像这样,里面有 URls:
“是的,但是我以合理的速度成长,”睡鼠说,“不是那种荒谬的方式。” 然后他很闷闷不乐地起身,走到球场的另一边。
女王一直盯着帽匠,就在睡鼠穿过法庭时,她对法庭的一名官员说:“把上一场音乐会的歌手名单拿给我!” 可怜的帽匠在上面颤抖得厉害,他把两只鞋子都抖掉了。
[视频 mp4="http://www.example.com/files/video/video1.mp4"][/video]
“把你的证据拿出来,”国王生气地重复道,“不然我就把你处死,不管你紧张与否。”
http://www.example.com/files/video/video2.flv
“我是个穷人,陛下,”帽匠用颤抖的声音开口道,“——而且我还没有开始喝茶——不到一个星期左右——而且面包和黄油越来越多怎么办?稀薄——还有茶的闪烁——”
我试图让它在其中找到两个视频网址并返回数组中的整个网址。
这是我所拥有的:
preg_match_all( '/^https?:\/\/(?:[a-z\-]+\.)+[a-z]{2,6}(?:/[^/#?]+)+\.(?:' . implode( '|', wp_get_video_extensions() ) . ')$/', $post->post_content, $matches);
我得到了这个:
警告:preg_match_all():未知修饰符 '['
理想情况下,我想得到这个:
Array
(
[0] => Array
(
[0] => http://www.example.com/files/video/video1.mp4
[1] => http://www.example.com/files/video/video2.flv
)
[1] => Array
(
[0] => http://www.example.com/
[1] => http://www.example.com/
)
[2] => Array
(
[0] => files/video/
[1] => files/video/
)
[3] => Array
(
[0] => video1.mp4
[1] => video2.flv
)
)
但这也是完美的,因为我parse_url()
以后可以用它来打破其余部分:
Array
(
[0] => http://www.example.com/files/video/video1.mp4
[1] => http://www.example.com/files/video/video2.flv
)