在iframe中更改youtube缩短的网址值

时间:2016-01-23 06:14:58

标签: url preg-replace

我正在使用高级自定义字段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


?>

我怎样才能做到这一点。

提前致谢

1 个答案:

答案 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中,我们可以将其插入最终的网址。

以下是您可以查看的工作演示中的上述代码:

http://ideone.com/zECA2e