提取HTML标签
作者:bea
<?php/********************************** *作者: 徐祖宁 (唠叨)*邮箱: czjsz_ah@stats.gov.cn*开发: 2002.07* * *函数: tags*功能: 从文件中提取HTML标签* *入口:*$filename 文件名*$tag标签名 *返回:*数组,每项为:*tagNameString*TextString*AttrsArray* *示例:*print_r(tags("test1.htm","a"));
<?php
/*********************************
*
* 作者: 徐祖宁 (唠叨)
* 邮箱: czjsz_ah@stats.gov.cn
* 开发: 2002.07
*
*
* 函数: tags
* 功能: 从文件中提取HTML标签
*
* 入口:
* $filename 文件名
* $tag 标签名
* 返回:
* 数组,每项为:
* tagName String
* Text String
* Attrs Array
*
* 示例:
* print_r(tags("test1.htm","a"));
* print_r("http://localhost/index.htm","img");
*
*/
function tags($filename,$tag) {
$buffer = join("",file($filename));
$buffer = eregi_replace("
","",$buffer);
$tagkey = sql_regcase($tag);
$buffer = eregi_replace("<$tagkey ","
<$tag ",$buffer);
$ar = split("
",$buffer);
foreach($ar as $v) {
if(! eregi("<$tagkey ",$v)) continue;
eregi("<$tagkey ([^>]*)((.*)</$tagkey)?",$v,$regs);
$p[tagName] = strtoupper($tag);
if($regs[3])
$p[Text] = $regs[3];
$s = trim(eregi_replace("[ ]+"," ",$regs[1]))." ";
$s = eregi_replace(" *= *","=",$s);
$a = split(" ",$s);
for($i=0;$i<count($a);$i++) {
$ch = array();
if(eregi("=["']",$a[$i])) {
$j = $i+1;
while(!eregi("["']$",$a[$i])) {
$a[$i] .= " ".$a[$j];
unset($a[$j]);
}
}
}
foreach($a as $k) {
$name = strtoupper(strtok($k,"="));
$value = strtok(" ");
if(eregi("^["']",$value))
$value = substr($value,1,-1);
if($name)
$p[Attrs][$name] = $value;
}
$pp[] = $p;
}
return $pp;
}
?>
有用 | 无用
/*********************************
*
* 作者: 徐祖宁 (唠叨)
* 邮箱: czjsz_ah@stats.gov.cn
* 开发: 2002.07
*
*
* 函数: tags
* 功能: 从文件中提取HTML标签
*
* 入口:
* $filename 文件名
* $tag 标签名
* 返回:
* 数组,每项为:
* tagName String
* Text String
* Attrs Array
*
* 示例:
* print_r(tags("test1.htm","a"));
* print_r("http://localhost/index.htm","img");
*
*/
function tags($filename,$tag) {
$buffer = join("",file($filename));
$buffer = eregi_replace("
","",$buffer);
$tagkey = sql_regcase($tag);
$buffer = eregi_replace("<$tagkey ","
<$tag ",$buffer);
$ar = split("
",$buffer);
foreach($ar as $v) {
if(! eregi("<$tagkey ",$v)) continue;
eregi("<$tagkey ([^>]*)((.*)</$tagkey)?",$v,$regs);
$p[tagName] = strtoupper($tag);
if($regs[3])
$p[Text] = $regs[3];
$s = trim(eregi_replace("[ ]+"," ",$regs[1]))." ";
$s = eregi_replace(" *= *","=",$s);
$a = split(" ",$s);
for($i=0;$i<count($a);$i++) {
$ch = array();
if(eregi("=["']",$a[$i])) {
$j = $i+1;
while(!eregi("["']$",$a[$i])) {
$a[$i] .= " ".$a[$j];
unset($a[$j]);
}
}
}
foreach($a as $k) {
$name = strtoupper(strtok($k,"="));
$value = strtok(" ");
if(eregi("^["']",$value))
$value = substr($value,1,-1);
if($name)
$p[Attrs][$name] = $value;
}
$pp[] = $p;
}
return $pp;
}
?>
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- 桌面中心(三)修改数据库
- 如何对PHP程序中的常见漏洞进行攻击(上)
- PHP4在WinXP下IIS和Apache2服务器上的安装实例
- PHP 和 MySQL 开发的 8 个技巧
- 用PHP连接Oracle数据库
- PHP面向对象编程快速入门
- PHP模拟SQL Server的两个日期处理函数
- PHP实现的功能是显示8条基色色带
- 提升PHP执行速度全攻略(上)
- 提升PHP执行速度全攻略(下)
- 如何过滤高亮显示非法字符
- 无限级别菜单的实现
- 综合图片计数器
- php,不用COM,生成excel文件
- PHP中GET变量的使用
- 一个ORACLE分页程序,挺实用的.
- 通过ICQ网关发送手机短信的PHP源程序
- 搜索引擎技术核心揭密
- 输出控制类