- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经找到了正常YouTube URL的YouTube ID。但是我没有考虑过简短的youtu.be网址,也不想过滤掉YouTube-Id视频。据我所知,有以下几种YT-URL:
youtube.com/watch?v=0zM3nApSvMg&feature=feedrec_grec_index
youtube.com/user/IngridMichaelsonVEVO#p/a/u/1/QdK8U-VIH_o
youtube.com/v/0zM3nApSvMg?fs=1&hl=zh_CN&rel=0
youtube.com/watch?v=0zM3nApSvMg#t=0m10s
youtube.com/embed/0zM3nApSvMg?rel=0
youtube.com/watch?v=0zM3nApSvMg
youtu.be/0zM3nApSvMg
我在另一个问题中发现了这个问题,但是没有用:
/^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/
add_filter('embed_oembed_html', 'my_embed_oembed_html', 99, 4);
function my_embed_oembed_html( $html, $url, $attr, $post_id) {
$posttext = substr($url[0],1);
preg_match('/v\=([a-zA-Z0-9,-]+)/', $url, $youtubeID);
return '<div id="video" class="border-frame"><video class="video" data-settings="autoresize:fit" preload="none" data-youtube-id="' . $youtubeID[1] . '"></video></div>';
}
最佳答案
实际上,您可能会考虑不使用正则表达式。 PHP具有许多可以帮助您的内置函数。例如,尝试以下代码:
$urls = array(
'youtube.com/watch?v=0zM3nApSvMg&feature=feedrec_grec_index',
'youtube.com/user/IngridMichaelsonVEVO#p/a/u/1/QdK8U-VIH_o',
'youtube.com/v/0zM3nApSvMg?fs=1&hl=en_US&rel=0',
'youtube.com/watch?v=0zM3nApSvMg#t=0m10s',
'youtube.com/embed/0zM3nApSvMg?rel=0',
'youtube.com/watch?v=0zM3nApSvMg',
'youtu.be/0zM3nApSvMg'
);
function displayId($url, $id) {
echo "URL: ", $url, "\n";
echo "ID: ", $id, "\n\n";
}
foreach ($urls as $url) {
$u = parse_url($url);
parse_str($u['query'], $queryVars);
if ($u['query'] && $queryVars['v']) {
displayId($url, $queryVars['v']);
} else if ($u['fragment']) {
displayId($url, basename($u['fragment']));
} else if ($u['path']) {
displayId($url, basename($u['path']));
}
}
URL: youtube.com/watch?v=0zM3nApSvMg&feature=feedrec_grec_index
ID: 0zM3nApSvMg
URL: youtube.com/user/IngridMichaelsonVEVO#p/a/u/1/QdK8U-VIH_o
ID: QdK8U-VIH_o
URL: youtube.com/v/0zM3nApSvMg?fs=1&hl=en_US&rel=0
ID: 0zM3nApSvMg
URL: youtube.com/watch?v=0zM3nApSvMg#t=0m10s
ID: 0zM3nApSvMg
URL: youtube.com/embed/0zM3nApSvMg?rel=0
ID: 0zM3nApSvMg
URL: youtube.com/watch?v=0zM3nApSvMg
ID: 0zM3nApSvMg
URL: youtu.be/0zM3nApSvMg
ID: 0zM3nApSvMg
关于youtube - preg_match找出YouTube ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14290012/
我想知道我们是否可以替换 if(preg_match('/boo/', $anything) 和 preg_match('/poo/', $anything)) 用正则表达式.. $anything
假设字符串是: $a = "abc-def" if (preg_match("/[^a-z0-9]/i", $a, $m)){ $i = "i stopped scanning '$a' beca
好的,所以我希望用户能够输入 A-Z 中的每个字符和 0-9 中的每个数字,但我不希望他们输入“特殊字符”。 代码: if (preg_match("/^[a-zA-Z0-9]$/", $user_n
我想使用 preg_match 来查找括号之间的文本,例如:$varx = "(xx)"; 最终输出将是 $match = 'xx'; 另一个例子$varx = "bla bla (yy) bla b
嘿伙计们,我正在尝试删除最后一个 _1.jpg 如果它存在于我的表达中,但我遇到了一些麻烦 场景如下。 image_name_1.jpg(应该是image_name.jpg) image_name_1
我需要修复这个 preg_match("/^[[0-9]{0,4}$/i", $input),它还需要接受负值。谢谢 最佳答案 if (preg_match('/^-?[0-9]{1,4}$/', $
我正在尝试提出一个符合 25 的正则表达式在这个字符串中: Always - 25 (Lifetime - 之间的空间量和 25可以是可变的,但尾随 (Lifetime将永远在
我试图通过仅过滤掉符合以下条件的单词来匹配字符串中的关键字: 任何地方都有大写字母的单词,例如“iPhone”或“camelCase” 连续大写的词组,例如“Pittsburgh Steelers”或
我在 mysql 字段中有此数据: First text text text text text text text text text text text text text text tex
我有这个代码 preg_match("/\bHTTP(.)+ (\d{3})/", $string) 在最后一个模式中,我必须检查一个可以由任何数字组成但不应该创建像 404 或 401 这样的数字的
你好,我想匹配下一行中的“@”, create@create_time:"2012-05-30 21:14:35.0",update_time:"2012-05-31 22:05:46.0" preg
我使用“或”运算符“|”只匹配 $name 变量的单词 $name = "one five six two"; if (preg_match('/(one|two)/i', $name)) {retu
大家好 我有一个字符串 Open Directory Sites (1-20 of 10000) 我需要得到 10000 作为答案.. 我如何使用 preg_match ???注意:这是重要的,匹配的
我想使用 preg_match 为带括号的子模式返回每个匹配项的数组。 我有这个代码: $input = '[one][two][three]'; if ( preg_match('/
我有一个像这样值的变量: $sentence = "When it comes time to renew your auto insurance policy, be aware of how yo
我只想允许使用字母、数字、空格、无色线和连字符。 到目前为止,我认为这个 preg_match 可以完成这项工作: if(preg_match('/[^a-z0-9 _]+$/i', $name))
这个问题与this直接相关我大约 15 分钟前提出的问题。这不是要与那个帖子重复,而是希望这更多是一种学习经验。 在提出的问题中,我试图找出导致 preg_match no deliminator f
我有以下字符串 № покупки(OrderId) : 12345 Доп.Информация 1 : Имя Доп.Информация 2 : Уставная деятельность 我
我正在尝试为我们的防火墙创建报告功能。 防火墙规则以 json 格式存储。 这是字符串的示例。 [{"id":1,"enabled":true,"description":"TEMP","matche
在多个模式的情况下,可以在相同的数组索引下返回 preg_match 的结果。我的意思是我有以下 preg_match 什么正在检查不同子字符串( '&q' 、 '?q' 、 '&keywords'
我是一名优秀的程序员,十分优秀!