提取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 相关文章推荐
PHP实现域名whois查询的代码(数据源万网、新网)
Feb 22 PHP
PHP学习之数组值的操作
Apr 17 PHP
php正则表达式(regar expression)
Sep 10 PHP
提高php运行速度的一些小技巧分享
Jul 03 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
Jan 06 PHP
解析PHP中一些可能会被忽略的问题
Jun 21 PHP
php获取数组元素中头一个数组元素值的实现方法
Dec 20 PHP
PHP批量生成图片缩略图的方法
Jun 18 PHP
php+ajax实现无刷新分页
Nov 18 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
May 16 PHP
浅析php如何实现爬取数据原理
Sep 27 PHP
PHP封装XML和JSON格式数据接口操作示例
Mar 06 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 simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
2016/04/07 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
2017/02/25 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
类似GMAIL的Ajax信息反馈显示
2010/02/16 Javascript
JQueryEasyUI datagrid框架的进阶使用
2013/04/08 Javascript
javascript的内存管理详解
2013/08/07 Javascript
原生js结合html5制作小飞龙的简易跳球
2015/03/30 Javascript
jquery实现先淡出再折叠收起的动画效果
2015/08/07 Javascript
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
表单中单选框添加选项和移除选项
2016/07/04 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
在Vue组件上动态添加和删除属性方法
2018/02/23 Javascript
jQuery阻止事件冒泡实例分析
2018/07/03 jQuery
JS 验证码功能的三种实现方式
2018/11/26 Javascript
Vue实现简单分页器
2018/12/29 Javascript
微信小程序中转义字符的处理方法
2019/03/28 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
2019/06/22 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
[04:19]完美世界携手游戏风云打造 卡尔工作室模型介绍篇
2013/04/24 DOTA
简单介绍Python中的JSON模块
2015/04/08 Python
python numpy函数中的linspace创建等差数列详解
2017/10/13 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
2018/03/19 Python
使用Python将Mysql的查询数据导出到文件的方法
2019/02/25 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
深入浅析Python代码规范性检测
2020/07/31 Python
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
全球独特生活方式产品和礼品购物网站:AHAlife
2018/09/18 全球购物
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
财务人员担保书
2014/05/13 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
go:垃圾回收GC触发条件详解
2021/04/24 Golang