上一篇:输出控制类 >>
提取HTML标签
/*********************************
*
* 作者: 徐祖宁 (唠叨)
* 邮箱: 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("\r\n","",$buffer);
$tagkey = sql_regcase($tag);
$buffer = eregi_replace("<$tagkey ","\n<$tag ",$buffer);
$ar = split("\n",$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("[ \t]+"," ",$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("\0");
if(eregi("^[\"@#]",$value))
$value = substr($value,1,-1);
if($name)
$p[Attrs][$name] = $value;
}
$pp[] = $p;
}
return $pp;
}
?>
下一篇:一个查看session内容的函数 >>
相关文章:
- · 如何去掉文章里的 html 语法
- · 层叠菜单的动态生成
- · 3种平台下安装php4经验点滴
- · PHP与MySQL交互使用详解
- · 资料注册后发信小技巧
- · 实现分十页分向前十页向后十页的处理
- · PHP实现分页的一个示例
- · 用cookies来跟踪识别用户
- · 通过ODBC连接的SQL SERVER实例
- · 在 PHP 中使用随机数的三个步骤
- · 也谈 PHP 和 MYSQL
- · PHP4引用文件语句的对比
- · 以文本方式上传二进制文件的PHP程序
- · 判“新”函数:得到今天与明天的秒数
- · 利用php来自动调用不同服务器上的flash
- · 如何做到多筆資料的同步
- · 如何做到多筆資料的同步
- · 如何在PHP中使用Oracle数据库(6)
- · 如何在PHP中使用Oracle数据库(5)
- · 如何在PHP中使用Oracle数据库(4)
- · 如何在PHP中使用Oracle数据库(3)
- · 用PHP连接Oracle for NT 远程数据库
- · 发挥语言的威力--融合PHP与ASP
- · 如何在PHP中使用Oracle数据库(2)
- · 如何在PHP中使用Oracle数据库(1)
- · 用PHP4访问Oracle815
- · PHP怎样调用MSSQL的存储过程
- · 虚拟主机中对PHP的特殊设置
- · 如何将一个表单同时提交到两个地方处理
- · 用php来检测proxy
- · 多php服务器实现多session并发运行
- · 在PHP中使用灵巧的体系结构
- · 提升PHP速度全攻略
- · PHP脚本的10个技巧(8)
- · PHP脚本的10个技巧(7)
- · PHP脚本的10个技巧(6)
- · PHP脚本的10个技巧(5)
- · PHP脚本的10个技巧(4)
