1
2/*********************************
3*
4* 作者: 徐祖宁 (唠叨)
5* 邮箱: [email protected]
6* 开发: 2002.07
7*
8*
9* 函数: tags
10* 功能: 从文件中提取HTML标签
11*
12* 入口:
13* $filename 文件名
14* $tag 标签名
15* 返回:
16* 数组,每项为:
17* tagName String
18* Text String
19* Attrs Array
20*
21* 示例:
22* print_r(tags("test1.htm","a"));
23* print_r("http://localhost/index.htm","img");
24*
25*/
26
27function tags($filename,$tag) {
28$buffer = join("",file($filename));
29$buffer = eregi_replace("\r\n","",$buffer);
30$tagkey = sql_regcase($tag);
31$buffer = eregi_replace("<$tagkey ","\n<$tag ",$buffer);
32$ar = split("\n",$buffer);
33
34foreach($ar as $v) {
35if(! eregi("<$tagkey ",$v)) continue;
36eregi("<$tagkey ([^>]*)((.*)</$tagkey)?",$v,$regs);
37$p[tagName] = strtoupper($tag);
38if($regs[3])
39$p[Text] = $regs[3];
40$s = trim(eregi_replace("[ \t]+"," ",$regs[1]))." ";
41$s = eregi_replace(" *= *","=",$s);
42
43$a = split(" ",$s);
44for($i=0;$i<count($a);$i++) {
45$ch = array();
46if(eregi("=[\"']",$a[$i])) {
47$j = $i+1;
48while(!eregi("[\"']$",$a[$i])) {
49$a[$i] .= " ".$a[$j];
50unset($a[$j]);
51}
52}
53}
54foreach($a as $k) {
55$name = strtoupper(strtok($k,"="));
56$value = strtok("\0");
57if(eregi("^[\"']",$value))
58$value = substr($value,1,-1);
59if($name)
60$p[Attrs][$name] = $value;
61}
62$pp[] = $p;
63}
64return $pp;
65}
66
提取HTML标签
comments powered by Disqus