提取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 相关文章推荐
用libtemplate实现静态网页生成
Oct 09 PHP
第七节--类的静态成员
Nov 16 PHP
如何使用PHP往windows中添加用户
Dec 06 PHP
dedecms采集中可以过滤多行代码的正则表达式
Mar 17 PHP
一家之言的经验之谈php+mysql扎实个人基本功
Mar 27 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
May 16 PHP
javascript数组与php数组的地址传递及值传递用法实例
Jan 22 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
Oct 10 PHP
PHP并发多进程处理利器Gearman使用介绍
May 16 PHP
cakephp常见知识点汇总
Feb 24 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
CentOS7编译安装php7.1的教程详解
Apr 18 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
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
PHP基于SPL实现的迭代器模式示例
2018/04/22 PHP
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
2014/01/15 Javascript
用循环或if语句从json中取数据示例
2014/08/18 Javascript
JavaScript中字面量与函数的基本使用知识
2015/10/20 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
浅谈js中调用函数时加不加括号的问题
2016/07/28 Javascript
NodeJS实现视频转码的示例代码
2017/11/18 NodeJs
使用electron实现百度网盘悬浮窗口功能的示例代码
2018/10/24 Javascript
JS实现的自定义map方法示例
2019/05/17 Javascript
Vuex新手的理解与使用详解
2019/05/31 Javascript
微信小程序防止多次点击跳转(函数节流)
2019/09/19 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
2019/11/26 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
python机器学习实战之树回归详解
2017/12/20 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
python与c语言的语法有哪些不一样的
2020/09/13 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
python爬虫使用scrapy注意事项
2020/11/23 Python
CSS3实现图片抽屉式效果的示例代码
2019/11/06 HTML / CSS
入党申请人的自我鉴定
2013/12/01 职场文书
代理协议书
2014/04/22 职场文书
英文推荐信格式范文
2014/05/09 职场文书
演讲稿格式范文
2014/05/19 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
民主评议党员个人自我评价
2015/03/03 职场文书
2015大学迎新晚会主持词
2015/07/16 职场文书
小组口号霸气押韵
2015/12/24 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
《围炉夜话》110句人生箴言,精辟有内涵,引人深思
2019/10/23 职场文书
python 如何用map()函数创建多线程任务
2021/04/07 Python
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
2021/05/25 Vue.js