我正在使用高级自定义字段wordpress插件来创建名为youtube URL的元标记...
当有人将视频网址放在较短格式时,如https://youtu.be/H-30B0cqh88
然后我用来显示视频的iframe不起作用,因为iframe不能用于更短版本的网址
相反,它需要真正的网址作为来源..我的iframe代码如下
“>我怎样才能实现这一点..让我告诉你我是如何实现这一目标的。
我不是php的专家,所以请给我完整的工作代码..
<?php
the_field("listing_video_1") == $got_url_from_user_input
if $got_url_from_user_input == https://youtu.be/H-30B0cqh88 in this format
$actual_URL= replace above url to https://youtube.com/embed/H-30B0cqh88
?>
我怎样才能做到这一点。
提前致谢
答案 0 :(得分:0)
这是使用preg_replace
完成您要完成的操作的简单方法:
<?php
// SET OUR DEFAULT URL
$got_url_from_user_input = 'https://youtu.be/H-30B0cqh88';
print "\nSTARTING URL: ".$got_url_from_user_input;
// DO THE REPLACE AND PRINT OUT THE FINAL RESULT
$actual_URL = preg_replace('~https://youtu\.be/([-A-Z0-9]+)~i', 'https://youtube.com/embed/$1', $got_url_from_user_input);
print "\nFINAL URL: ".$actual_URL;
这里的魔力并不多,所以让我快点说吧:
https://youtu\.be/
- 准确查找此模式。我们用反斜杠转义点,因此它找到一个文字点,而不是任何字符。([-A-Z0-9]+)
- 这只是与任何短划线,字母或数字匹配的基本字符类,至少出现一次。我们将它放在括号中,以便我们将其保存在$1
中,我们可以将其插入最终的网址。以下是您可以查看的工作演示中的上述代码: