本文整理自网络,侵删。
PHP代码
$str = preg_replace("/(<a.*?>)(.*?)(<\/a>)/", '\1<span class="link">\2</span>\3', $str);
其中用了三个子模式(每个圆括号中内容为一个子模式),第一个是链接开始标签,第二个是链接文本,第三个是</a>
然后第二个参数中\1、\2、\3就表示这三个部分,要替换成什么样子还不简单?
获取页面中的所有链接地址的PHP函数
下面这个用PHP写的函数,可以获取任意的字符串$string中的所有链接地址($string可以是从一个HTML页面文件直接读取出来的字符串),结果保存在一个数组中返回.该函数自动把电子邮件地址排除在外,而且返回的数组中不会有重复元素.
function GetAllLink($string) { $string = str_replace("\r","",$string); $string = str_replace("\n","",$string); $regex[url] = "((http|https|ftp|telnet|news):\/\/)?([a-z0-9_\-\/\.]+\.[][a-z0-9:;&#@=_~%\?\/\.\,\+\-]+)"; $regex[email] = "([a-z0-9_\-]+)@([a-z0-9_\-]+\.[a-z0-9\-\._\-]+)"; //去掉标签之间的文字 $string = eregi_replace(">[^<>]+<","><", $string); //去掉JAVASCRIPT代码 $string = eregi_replace("<!--.*//-->","", $string); //去掉非<a>的HTML标签 $string = eregi_replace("<[^a][^<>]*>","", $string); //去掉EMAIL链接 $string = eregi_replace("<a([ ]+)href=([\"']*)mailto:($regex[email])([\"']*)[^>]*>","", $string); //替换需要的网页链接 $string = eregi_replace("<a([ ]+)href=([\"']*)($regex[url])([\"']*)[^>]*>","\\3\t", $string); $output[0] = strtok($string, "\t"); while(($temp = strtok("\t"))) { if($temp && !in_array($temp, $output)) $output[++$i] = $temp; } return $output; }
以下是以PHP的语法所写的示例
验证字符串是否只含数字与英文,字符串长度并在4~16个字符之间
<?php $str = 'a1234'; if (preg_match("^[a-zA-Z0-9]{4,16}$", $str)) { echo "验证成功";} else { echo "验证失敗";}?>
简易的台湾身分证字号验证
<?php $str = 'a1234'; if (preg_match("^(?:\d{15}|\d{18})$", $str)) { echo "验证成功"; } else { echo "验证失敗";} ?>
相关阅读 >>
phpcms v9 整合discuz! x2.5 和ucenter 1.6.0详细图文教程
discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
linux+nginx+mysql下配置论坛程序discuz的基本教程
更多相关阅读请进入《Discuz论坛》频道 >>