http://www.jb51.net/article/14049.htm
PHP代码
str=pregreplace("/(<a.∗?>)(.∗?)(<\/a>)/",′\1<spanclass="link">\2</span>\3′,
str);
其中用了三个子模式(每个圆括号中内容为一个子模式),第一个是链接开始标签,第二个是链接文本,第三个是
然后第二个参数中\1、\2、\3就表示这三个部分,要替换成什么样子还不简单?
获取页面中的所有链接地址的PHP函数
下面这个用PHP写的函数,可以获取任意的字符串
string中的所有链接地址(
string可以是从一个HTML页面文件直接读取出来的字符串),结果保存在一个数组中返回.该函数自动把电子邮件地址排除在外,而且返回的数组中不会有重复元素.
?
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
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=eregireplace(">[<>]+<","><",
string);
//去掉JAVASCRIPT代码
string=eregireplace("<!−−.∗//−−>","",
string);
//去掉非的HTML标签
string=eregireplace("<[a][<>]∗>","",
string);
//去掉EMAIL链接
string=eregireplace("<a([]+)href=([\"′]∗)mailto:(
regex[email])([\”’])[^>]>”,”“, $string);
//替换需要的网页链接
string=eregireplace("<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个字符之间
?
1
2
3
4
5