提取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
基于python发送邮件的乱码问题的解决办法
Apr 25 PHP
PHP读取大文件的类SplFileObject使用介绍
Apr 09 PHP
php计算当前程序执行时间示例
Apr 24 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
Sep 10 PHP
php计算两个日期相差天数的方法
Mar 14 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
Sep 23 PHP
通过PHP简单实例介绍文件上传
Dec 16 PHP
php自动载入类用法实例分析
Jun 24 PHP
PHP实现的AES加密、解密封装类与用法示例
Aug 02 PHP
解决PhpStorm64不能启动的问题
Jun 20 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
php中对xml读取的相关函数的介绍一
2008/06/05 PHP
ThinkPHP中的常用查询语言汇总
2014/08/22 PHP
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
javascript与CSS复习(《精通javascript》)
2010/06/29 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
jQuery深拷贝Json对象简单示例
2016/07/06 Javascript
详解Vue用axios发送post请求自动set cookie
2017/05/10 Javascript
关于Bootstrap按钮组件消除黄框的方法
2017/05/19 Javascript
表格展示利器 Bootstrap Table实例代码
2017/09/06 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
nodejs 日志模块winston的使用方法
2018/05/02 NodeJs
微信小程序日历效果
2018/12/29 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
从零学Python之入门(五)缩进和选择
2014/05/27 Python
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
儿童python练习实例
2018/05/27 Python
python的set处理二维数组转一维数组的方法示例
2019/05/31 Python
python Pillow图像处理方法汇总
2019/10/16 Python
HTML5样式控制示例代码
2013/11/27 HTML / CSS
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢
2013/04/24 面试题
银行财务部实习生的自我鉴定
2013/11/27 职场文书
房地产活动策划方案
2014/05/14 职场文书
校园元旦活动总结
2014/07/09 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
雷锋之歌观后感
2015/06/10 职场文书
2016年小学党支部创先争优活动总结
2016/04/05 职场文书
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL