提取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生成随机密码的三种方法小结
Sep 04 PHP
PHP项目开发中最常用的自定义函数整理
Dec 02 PHP
php设计模式 Delegation(委托模式)
Jun 26 PHP
深入Memcache的Session数据的多服务器共享详解
Jun 13 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
Jul 01 PHP
PHP程序员必须清楚的问题汇总
Dec 18 PHP
php实现专业获取网站SEO信息类实例
Apr 02 PHP
PHP数据库连接mysql与mysqli对比分析
Jan 04 PHP
PHP flush 函数使用注意事项
Aug 26 PHP
PHP实现随机数字、字母的验证码功能
Aug 01 PHP
php使用QueryList轻松采集js动态渲染页面方法
Sep 11 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 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实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
实现变速回到顶部的JavaScript代码
2011/05/09 Javascript
JS定时器实例
2013/04/17 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
JavaScript语言核心数据类型和变量使用介绍
2013/08/23 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
JavaScript也谈内存优化
2014/06/06 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
深入解析JavaScript的闭包机制
2015/10/20 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
最棒的Angular2表格控件
2016/08/10 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
2018/12/24 Javascript
js常见遍历操作小结
2019/06/06 Javascript
微信小程序wxml列表渲染原理解析
2019/11/27 Javascript
bootstrap实现嵌套模态框的实例代码
2020/01/10 Javascript
JS快速实现简单计算器
2020/04/08 Javascript
详细分析Node.js 模块系统
2020/06/28 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
Ruby元编程基础学习笔记整理
2016/07/02 Python
详解python3中socket套接字的编码问题解决
2017/07/01 Python
python中利用await关键字如何等待Future对象完成详解
2017/09/07 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
详解python tkinter模块安装过程
2020/01/06 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
python 监控服务器是否有人远程登录(详细思路+代码)
2020/12/18 Python
css3实现背景图片拉伸效果像桌面壁纸一样
2013/08/19 HTML / CSS
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
社区党员干部承诺书
2015/05/04 职场文书
Python爬取奶茶店数据分析哪家最好喝以及性价比
2022/09/23 Python