用于将URL自动转换为可单击的超链接(锚定标记)的函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于将URL自动转换为可单击的超链接(锚定标记)的函数相关的知识,希望对你有一定的参考价值。
In wordpress, if you want to auto convert all URLs in your string into clickable hyperlinks, you can actually do it using the built-in function make_clickable().If you need to do that outside of wordpress, you can use the same function.
Example:
$string = 'I have some texts here and also links such as http://www.youtube.com , www.haha.com and [email protected] They are ready to be replaced.';
echo make_clickable($string);
function _make_url_clickable_cb($matches) { $ret = ''; $url = $matches[2]; return $matches[0]; // removed trailing [.,;:] from URL } return $matches[1] . "<a href="$url" rel="nofollow">$url</a>" . $ret; } function _make_web_ftp_clickable_cb($matches) { $ret = ''; $dest = $matches[2]; $dest = 'http://' . $dest; return $matches[0]; // removed trailing [,;:] from URL } return $matches[1] . "<a href="$dest" rel="nofollow">$dest</a>" . $ret; } function _make_email_clickable_cb($matches) { $email = $matches[2] . '@' . $matches[3]; return $matches[1] . "<a href="mailto:$email">$email</a>"; } function make_clickable($ret) { $ret = ' ' . $ret; // in testing, using arrays here was found to be faster $ret = preg_replace_callback('#([s>])([w]+?://[w\x80-\xff#$%&~/.-;:=,[email protected][]+]*)#is', '_make_url_clickable_cb', $ret); $ret = preg_replace_callback('#([s>])((www|ftp).[w\x80-\xff#$%&~/.-;:=,[email protected][]+]*)#is', '_make_web_ftp_clickable_cb', $ret); $ret = preg_replace_callback('#([s>])([.0-9a-z_+-]+)@(([0-9a-z-]+.)+[0-9a-z]{2,})#i', '_make_email_clickable_cb', $ret); // this one is not in an array because we need it to run last, for cleanup of accidental links within links return $ret; }
以上是关于用于将URL自动转换为可单击的超链接(锚定标记)的函数的主要内容,如果未能解决你的问题,请参考以下文章