本文实例讲述了php自动给网址加上链接的方法。分享给大家供大家参考。具体实现方法如下:
这里自动匹配页面里的网址,包含http,ftp等,自动给网址加上链接
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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" , "\\1http://www." , $l ); $l = preg_replace( "/([ \t]|^)ftp\./i" , "\\1ftp://ftp." , $l ); $l = preg_replace( "/(http:\/\/[^ )\r\n!]+)/i" , "<a href=\"\\1\">\\1</a>" , $l ); $l = preg_replace( "/(https:\/\/[^ )\r\n!]+)/i" , "<a href=\"\\1\">\\1</a>" , $l ); $l = preg_replace( "/(ftp:\/\/[^ )\r\n!]+)/i" , "<a href=\"\\1\">\\1</a>" , $l ); $l = preg_replace( "/([-a-z0-9_]+(\.[_a-z0-9-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)+))/i" , "<a href=\"mailto:\\1\">\\1</a>" , $l ); $new_text .= $l . "\n" ; } return $new_text ; } //使用范例: $text = "Welcome www.zzvips.com :-)" ; print text2links( $text ); |
希望本文所述对大家的php程序设计有所帮助。