php实现使用正则将文本中的网址转换成链接标签
代码如下:
function text2links($str='') { if($str=='' or !preg_match('/(http|www\.|@)/i', $str)) { return $str; } $lines = explode("\n", $str); $new_text = ''; while (list($k,$l) = each($lines)) { // replace links: $l = preg_replace("/([ \t]|^)www\./i", "<a href="file://%5C%5C1http:/www">\\1http://www</a>.", $l); $l = preg_replace("/([ \t]|^)ftp\./i", "<a href="file://%5C%5C1ftp:/ftp">\\1ftp://ftp</a>.", $l); $l = preg_replace("/(http:\/\/[^ )\r\n!]+)/i", "<a href=\"<a href="file://%5C%5C1%5C%22>%5C%5C1</a">\\1\">\\1</a</a>>", $l); $l = preg_replace("/(https:\/\/[^ )\r\n!]+)/i", "<a href=\"<a href="file://%5C%5C1%5C%22>%5C%5C1</a">\\1\">\\1</a</a>>", $l); $l = preg_replace("/(ftp:\/\/[^ )\r\n!]+)/i", "<a href=\"<a href="file://%5C%5C1%5C%22>%5C%5C1</a">\\1\">\\1</a</a>>", $l); $l = preg_replace( "/([-a-z0-9_]+(\.[_a-z0-9-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)+))/i", "<a href=\"<a href="mailto:%5C%5C1%5C%22>%5C%5C1</a">mailto:\\1\">\\1</a</a>>", $l); $new_text .= $l."\n"; } return $new_text; }
相关推荐
满地星辰 2020-09-16
杨德龙 2020-11-11
不要皱眉 2020-10-14
梦的天空 2020-08-25
lrjnlp 2020-07-19
qidu 2020-07-05
flyingssky 2020-07-05
flyingssky 2020-06-27
RuoShangM 2020-06-17
天高任鸟飞 2020-06-13
Darklovy 2020-06-11
qidu 2020-06-08
Darklovy 2020-06-07
jyj00 2020-06-06
flyingssky 2020-06-04
山水沐光 2020-05-26
山水沐光 2020-05-25