1
我有将链接更改为可点击链接的功能,以及将youtube链接更改为嵌入视频的功能。php正则表达式更改youtube链接到视频
但是,如果您首先发布YouTube视频,然后是常规链接,则所有链接都会转化为YouTube视频。
如何编辑我的功能,只将YouTube链接更改为嵌入式视频并忽略常规链接?
function convertLinks($Link) {
$Link = preg_replace(
"#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t< ]*)#",
"\\1<a href=\"\\2\" target=\"_blank\">\\2</a>",
$Link);
$Link = preg_replace(
"#(^|[\n ])((www|ftp)\.[^ \"\t\n\r< ]*)#",
"\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>",
$Link);
return $Link;
}
function convertYouTube($Link) {
if (preg_match(
'%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i',
$Link,
$match)) {
$video_id = $match[1];
$Link = htmlspecialchars_decode(
preg_replace(
"#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t< ]*)#",
"\\1<iframe width=\"640\" height=\"360\" src=\"http://www.youtube.com/embed/$video_id\" frameborder=\"0\" allowfullscreen></iframe>",
$Link));
}
return $Link;
}
function convertMessages($Comment) {
$Comment = convertYouTube($Comment);
$Comment = convertLinks($Comment);
return $Comment;
}
首先发布原始链接的格式,点击一个,嵌入的一个......这将有助于:) – Enissay
链接只是任何常规链接http://www.google.com。 ConvertMessages()函数只接收整个消息并转换它找到的任何链接。所以它可能正是这篇文章,它会使谷歌链接点击。 – Andrew
请问你可以在哪里调用'convertMessages()'来显示代码? –