Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP查找youtube url以嵌入_匹配和_替换_Php_Regex_Preg Replace_Preg Match - Fatal编程技术网

PHP查找youtube url以嵌入_匹配和_替换

PHP查找youtube url以嵌入_匹配和_替换,php,regex,preg-replace,preg-match,Php,Regex,Preg Replace,Preg Match,无法找出以下代码不起作用的原因 它接受文本文件内容(字符串),替换youtube url(来自字符串),然后将其嵌入到其他字符串中,但我没有得到响应 // regex $yt_pre = "/https?:\/\/(?:www)?\.youtu(?:\.be|be\.com)\/watch(?:\?(.*?)&|\?)v=([a-zA-Z0-9_\-]+)(\S*)/i"; // find preg_match($yt_pre, $text, $yt_find); $yt_loc =

无法找出以下代码不起作用的原因

它接受文本文件内容(字符串),替换youtube url(来自字符串),然后将其嵌入到其他字符串中,但我没有得到响应

// regex
$yt_pre = "/https?:\/\/(?:www)?\.youtu(?:\.be|be\.com)\/watch(?:\?(.*?)&|\?)v=([a-zA-Z0-9_\-]+)(\S*)/i";

// find
preg_match($yt_pre, $text, $yt_find);
$yt_loc = $yt_find[1];

// embed
$yt_rep = "<div class='youtube'><iframe src='https://www.youtube.com/embed/" . $yt_loc . "' frameborder='0' allowfullscreen class='youtube_iframe'></iframe></div>";

// replace
preg_replace($yt_pre, $yt_rep, $text);
//regex
$ytêu pre=“/https?:\/\/(?:www)?\.youtu(?:\.be | be\.com)\/watch(?:?(*?)&|?)v=([a-zA-Z0-9_\-]+)(\S*)/i”;
//发现
preg_match($yt_pre,$text,$yt_find);
$yt_loc=$yt_find[1];
//嵌入
$yt_rep=“”;
//替换
preg_replace($yt_pre,$yt_rep,$text);

我猜这个表达式可能适用于youtube链接,我假设我们有一个带有此模式的ID(
([A-Za-z0-9_-]{11})
):


我猜这个表达式可能适用于youtube链接,我假设我们有一个具有此模式的ID(
([A-Za-z0-9_-]{11})
):


“但我没有得到回应”是什么意思?
$text
的内容是什么?你得到了什么?您期望得到什么?@Toto$text文件包含带有一些html标记和链接的文本。它通过获取文件内容等来填充页面。我正在尝试将文本中的youtube链接转换为嵌入代码。当我检查警告或来源时。。我没有从上面的代码中得到任何改变。没有警报,没有警告,什么都没有。向我们显示输入文件的摘录和预期结果。添加了更清晰的代码“但我没有得到响应”是什么意思?
$text
的内容是什么?你得到了什么?您期望得到什么?@Toto$text文件包含带有一些html标记和链接的文本。它通过获取文件内容等来填充页面。我正在尝试将文本中的youtube链接转换为嵌入代码。当我检查警告或来源时。。我没有从上面的代码中得到任何改变。没有警报,没有警告,什么都没有。向我们显示输入文件的摘录和预期结果。添加了更清晰的代码
https?:\/\/(?:www\.)?youtu(?:be)?(?:\.com|\.be)\/(?:watch\?v=|embed\/watch\?feature=player_embedded&v=)?([A-Za-z0-9_-]{11})(.+)?
$re = '/https?:\/\/(?:www\.)?youtu(?:be)?(?:\.com|\.be)\/(?:watch\?v=|embed\/watch\?feature=player_embedded&v=)?([A-Za-z0-9_-]{11})(.+)?/m';
$str = 'http://www.youtube.com/watch?v=iwGFalTRHDA
http://www.youtube.com/watch?v=iwGFalTRHDA&feature=related
http://youtu.be/iwGFalTRHDA
http://youtu.be/n17B_uFF4cA
http://www.youtube.com/embed/watch?feature=player_embedded&v=r5nB9u4jjy4
http://www.youtube.com/watch?v=t-ZRX8984sc
http://youtu.be/t-ZRX8984sc';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

var_dump($matches);