preg_replace 单个变量中的多个 Youtube 链接
preg_replace multiple Youtube links in Single Variable
我还在学习 PHP 并且在今天之前从未接触过正则表达式或 preg_replace 所以请原谅我的无知。我正在为我的论坛修改一个脚本,以将帖子中的 YouTube link 转换为嵌入代码。到目前为止,如果字符串仅包含单个 link,它会起作用,但是当我在多个帖子中有多个 link 时,它不会。此外,我不确定 $text 变量是如何填充的,因为它不仅仅是一个字符串,而且在传递给其他函数的一个变量中包含用户的所有状态帖子。非常感谢任何帮助。
看起来像一串:
echo "$text";
https://www.youtube.com/watch?v=3rb47k3KHtQtesttesthttps://www.youtube.com/watch?v=ah2rSAdZljMhttps://www.youtube.com/watch?v=ah2rSAdZljM
但实际上它是一个变量中的多个字符串。这让我感到困惑,因为我不知道没有数组是如何完成的,我非常想知道。
var_dump($text);
string(43) "https://www.youtube.com/watch?v=3rb47k3KHtQ" string(4) "test" string(4) "test" string(43) "https://www.youtube.com/watch?v=ah2rSAdZljM" string(43) "https://www.youtube.com/watch?v=ah2rSAdZljM"
PHP代码:
<?php
$search = '/(https:\/\/www\.youtube\.com\/watch.v=[a-z0-9]{8,11})/i';
$replace = '<iframe width="560" height="315" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen src="https://www.youtube.com/embed/';
$replace .= ;
$replace .= '"></iframe>';
echo preg_replace($search, $replace, $text);
?>
对于 $1,除非我缩短文本以删除所有其他 link,否则脚本不起作用。我需要能够替换所有 link,但我不知道如何访问正则表达式组,除了我一直关注的教程中的标准 $1、$2、$3 等。我正在尝试做的事情可行吗?
如果我更改此代码,您的代码对我有用
$replace .= ;
至此
$replace .= "$1";
我还在学习 PHP 并且在今天之前从未接触过正则表达式或 preg_replace 所以请原谅我的无知。我正在为我的论坛修改一个脚本,以将帖子中的 YouTube link 转换为嵌入代码。到目前为止,如果字符串仅包含单个 link,它会起作用,但是当我在多个帖子中有多个 link 时,它不会。此外,我不确定 $text 变量是如何填充的,因为它不仅仅是一个字符串,而且在传递给其他函数的一个变量中包含用户的所有状态帖子。非常感谢任何帮助。
看起来像一串:
echo "$text";
https://www.youtube.com/watch?v=3rb47k3KHtQtesttesthttps://www.youtube.com/watch?v=ah2rSAdZljMhttps://www.youtube.com/watch?v=ah2rSAdZljM
但实际上它是一个变量中的多个字符串。这让我感到困惑,因为我不知道没有数组是如何完成的,我非常想知道。
var_dump($text);
string(43) "https://www.youtube.com/watch?v=3rb47k3KHtQ" string(4) "test" string(4) "test" string(43) "https://www.youtube.com/watch?v=ah2rSAdZljM" string(43) "https://www.youtube.com/watch?v=ah2rSAdZljM"
PHP代码:
<?php
$search = '/(https:\/\/www\.youtube\.com\/watch.v=[a-z0-9]{8,11})/i';
$replace = '<iframe width="560" height="315" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen src="https://www.youtube.com/embed/';
$replace .= ;
$replace .= '"></iframe>';
echo preg_replace($search, $replace, $text);
?>
对于 $1,除非我缩短文本以删除所有其他 link,否则脚本不起作用。我需要能够替换所有 link,但我不知道如何访问正则表达式组,除了我一直关注的教程中的标准 $1、$2、$3 等。我正在尝试做的事情可行吗?
如果我更改此代码,您的代码对我有用
$replace .= ;
至此
$replace .= "$1";