PHP 实现自动转换URL,跳转至超链接的方法
内容摘要
这篇文章主要为大家详细介绍了PHP 实现自动转换URL,跳转至超链接的方法,具有一定的参考价值,可以用来参考一下。
在WordPress中,如果你想自动转换URL,跳转至超链接页面,你可以利
在WordPress中,如果你想自动转换URL,跳转至超链接页面,你可以利
文章正文
这篇文章主要为大家详细介绍了PHP 实现自动转换URL,跳转至超链接的方法,具有一定的参考价值,可以用来参考一下。
在WordPress中,如果你想自动转换URL,跳转至超链接页面,你可以利用内置的函数make_clickable()执行此操作。如果你想基于WordPress之外操作该程序,那么你可以参考wp-includes/formatting.php源代码。经测试代码如下:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | <code class = "php" > <?php function _make_url_clickable_cb( $matches ) { $ret = '' ; $url = $matches [2]; if ( empty ( $url ) ) return $matches [0]; // removed trailing [.,;:] from URL if ( in_array( substr ( $url , -1), array ( '.' , ',' , ';' , ':' )) === true ) { $ret = substr ( $url , -1); $url = substr ( $url , 0, strlen ( $url )-1); } return $matches [1] . "$url" . $ret ; } function _make_web_ftp_clickable_cb( $matches ) { $ret = '' ; $dest = $matches [2]; $dest = 'http://' . $dest ; if ( empty ( $dest ) ) return $matches [0]; // removed trailing [,;:] from URL if ( in_array( substr ( $dest , -1), array ( '.' , ',' , ';' , ':' )) === true ) { $ret = substr ( $dest , -1); $dest = substr ( $dest , 0, strlen ( $dest )-1); } return $matches [1] . "$dest" . $ret ; } function _make_email_clickable_cb( $matches ) { $email = $matches [2] . '@' . $matches [3]; return $matches [1] . "$email" ; } 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\#$%&~/.\-;:=,?@\[\]+]*)#is' , '_make_url_clickable_cb' , $ret ); $ret = preg_replace_callback( '#([\s>])((www|ftp)\.[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]*)#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 $ret = preg_replace( "#(]+?>|>))]+?>([^>]+?)#i" , "$1$3" , $ret ); $ret = trim( $ret ); return $ret ; } /*** 以上代码来自:php教程(www.idcnote.com) ***/ ?></code> |
注:关于PHP 实现自动转换URL,跳转至超链接的方法的内容就先介绍到这里,更多相关文章的可以留意
代码注释