【发布时间】:2021-03-13 16:26:39
【问题描述】:
我使用此代码使 url 作为论坛帖子中的锚链接可点击。
function makelink($str) {
$str = preg_replace_callback('/((((http)(s)?:\/\/)|www\.)[-0-9æøåa-zA-Z?-??-?\(\)%_+\.~#?&;:@\/\/=]+)(?<!\.)/i', function($matches) {
if (strtolower(substr($matches[0], 0 , 4)) == 'www.') {
$matches[0] = 'http://' . $matches[0];
}
return '<a href="'.$matches[0].'" title="link" rel="noreferrer">'.$matches[0].'</a>';
}, $str);
return trim($str);
}
它工作正常。现在我还需要将 youtube 链接放入链接下方的嵌入代码中(我猜想附加到链接中)。
这没关系,有一个额外的替换例程正在进行。
如何制作一些代码来替换生成的锚点(如果它是 youtube 链接):
<a href="https://www.youtube.com/watch?v=LOLAy72Tv24" title="link" rel="noreferrer">https://www.youtube.com/watch?v=LOLAy72Tv24</a>
有了这个:
<a href="https://www.youtube.com/watch?v=LOLAy72Tv24" title="link" rel="noreferrer">https://www.youtube.com/watch?v=LOLAy72Tv24</a>
<br />
<iframe class="youtube" width="350" height="250" src="https://www.youtube.com/embed/LOLAy72Tv24/" allowfullscreen></iframe>
所以它只需要获取视频ID并将嵌入代码放在原始链接下方,同时将两者一起输出。
【问题讨论】:
-
使用
parse_url来确定 url 主机是否是 YouTube,如果是,请附加您需要的内容。 -
@El_Vanja 谢谢。但是我对如何只编写替换/追加代码有点不知所措
标签: php regex youtube preg-replace