提取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连接Oracle数据库
Oct 09 PHP
UCenter Home二次开发指南
May 28 PHP
PHP 柱状图实现代码
Dec 04 PHP
PHP递归删除目录几个代码实例
Apr 21 PHP
浅谈Eclipse PDT调试PHP程序
Jun 09 PHP
php从memcache读取数据再批量写入mysql的方法
Dec 29 PHP
php备份数据库类分享
Apr 14 PHP
PHP也能干大事 随机函数
Apr 14 PHP
基于php编程规范(详解)
Aug 17 PHP
PHP的PDO连接讲解
Jan 24 PHP
PHP检查URL包含特定字符串实例方法
Feb 11 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
Aug 27 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
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
javascript 判断中文字符长度的函数代码
2012/08/27 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
jquery 按键盘上的enter事件
2014/05/11 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
2014/06/06 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
2015/06/01 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
2019/05/14 jQuery
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
修改Vue打包后的默认文件名操作
2020/08/12 Javascript
在vue中使用image-webpack-loader实例
2020/11/12 Javascript
Python中unittest用法实例
2014/09/25 Python
在Django中限制已登录用户的访问的方法
2015/07/23 Python
Python实现的文本编辑器功能示例
2017/06/30 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
2018/11/21 Python
Python多进程fork()函数详解
2019/02/22 Python
Python函数和模块的使用总结
2019/05/20 Python
pytorch的梯度计算以及backward方法详解
2020/01/10 Python
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
如何判断计算机可能已经中马
2013/03/22 面试题
物流管理专业应届生求职信
2013/11/21 职场文书
毕业生找工作求职信
2014/08/05 职场文书
幼儿园见习报告范文
2014/10/30 职场文书
公司清洁工岗位职责
2015/04/15 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
《迟到》教学反思
2016/02/24 职场文书
高二英语教学反思
2016/03/03 职场文书
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis