提取HTML标签


Posted in PHP onOctober 09, 2006

<?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("\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;
}

?>

PHP 相关文章推荐
域名查询代码公布
Oct 09 PHP
JS 网站性能优化笔记
May 24 PHP
php实现rc4加密算法代码
Apr 25 PHP
PHP中如何定义和使用常量
Feb 28 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
Jun 05 PHP
php使用多个进程同时控制文件读写示例
Feb 28 PHP
php给图片加文字水印
Jul 31 PHP
PHP编写的图片验证码类文件分享
Jun 06 PHP
php调用云片网接口发送短信的实现方法
Oct 25 PHP
PHP常见过waf webshell以及最简单的检测方法
May 21 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
May 29 PHP
PHP7 其他修改
Mar 09 PHP
如何把PHP转成EXE文件
Oct 09 #PHP
一个查看session内容的函数
Oct 09 #PHP
一个显示天气预报的程序
Oct 09 #PHP
web方式ftp
Oct 09 #PHP
php中文本数据翻页(留言本翻页)
Oct 09 #PHP
自己动手做一个SQL解释器
Oct 09 #PHP
GD输出汉字的函数的分析
Oct 09 #PHP
You might like
DedeCMS dede_channeltype表字段注释
2010/04/07 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
2010/06/04 PHP
PHP内核探索:哈希表碰撞攻击原理
2015/07/31 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
jQuery使用手册之二 DOM操作
2007/03/24 Javascript
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
2013/06/24 Javascript
JS关键字球状旋转效果的实例代码
2013/11/29 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
实例详解angularjs和ajax的结合使用
2015/10/22 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
在DWR中实现直接获取一个JAVA类的返回值的两种方法
2016/12/25 Javascript
vue项目中axios使用详解
2018/02/07 Javascript
Koa代理Http请求的示例代码
2018/10/10 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
vue在自定义组件中使用v-model进行数据绑定的方法
2019/03/25 Javascript
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
[02:32]DOTA2亚洲邀请赛 VG战队巡礼
2015/02/03 DOTA
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
Python3实现的旋转矩阵图像算法示例
2019/04/03 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
2019/08/12 Python
python3实现弹弹球小游戏
2019/11/25 Python
利用python绘制正态分布曲线
2021/01/04 Python
面向中国市场的在线海淘美妆零售网站:Beauty House美丽屋
2021/03/02 全球购物
PHP如何对用户密码进行加密
2014/07/31 面试题
Ibatis的核心配置文件都有什么
2014/09/08 面试题
软件设计的目标是什么
2016/12/04 面试题
ktv收银员岗位职责
2013/12/16 职场文书
大班开学家长寄语
2014/04/04 职场文书
汽车4S店前台接待岗位职责
2015/04/03 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书
2015年幼儿教育工作总结
2015/07/24 职场文书
餐厅营销的秘密:为什么老顾客会流水?
2019/08/08 职场文书
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL