提取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 相关文章推荐
在任意字符集下正常显示网页的方法一
Apr 01 PHP
PHP 中执行排序与 MySQL 中排序
Apr 21 PHP
PHP常用代码大全(新手入门必备)
Jun 29 PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
Aug 21 PHP
php页面消耗内存过大的处理办法
Mar 18 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 PHP
CodeIgniter中使用cookie的三种方式详解
Jul 18 PHP
php文档工具PHP Documentor安装与使用方法
Jan 25 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
Sep 23 PHP
PHP实现正则表达式分组捕获操作示例
Feb 03 PHP
php 获取xml接口数据的处理方法
May 31 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
Dec 01 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
重料打造自己的“宝马”---第三代
2021/03/02 无线电
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
单击浏览器右上角的X关闭窗口弹出提示的小例子
2013/06/12 Javascript
页面加载完毕后滚动条自动滚动一定位置
2014/02/20 Javascript
jQuery实现360°全景拖动展示
2015/03/18 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
jQuery实现滚动效果
2017/11/17 jQuery
详解vue组件开发脚手架
2018/06/15 Javascript
vue里input根据value改变背景色的实例
2018/09/29 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
[36:41]完美世界DOTA2联赛循环赛FTD vs Magma第一场 10月30日
2020/10/31 DOTA
从零学python系列之数据处理编程实例(二)
2014/05/22 Python
wxPython中文教程入门实例
2014/06/09 Python
python中常用检测字符串相关函数汇总
2015/04/15 Python
Python求两个文本文件以行为单位的交集、并集与差集的方法
2015/06/17 Python
python开发之字符串string操作方法实例详解
2015/11/12 Python
深入理解python中的浅拷贝和深拷贝
2016/05/30 Python
浅谈Python实现Apriori算法介绍
2017/12/20 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
马来西亚在线购物:POPLOOK.com
2019/12/09 全球购物
英国领先的电动可调床制造商:Laybrook
2019/12/26 全球购物
Pharmacy Online中文直邮网站:澳洲大型药房
2020/06/27 全球购物
团支部建设方案
2014/05/02 职场文书
数学兴趣小组活动总结
2014/07/08 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
太行山上观后感
2015/06/05 职场文书
Python matplotlib绘制雷达图
2022/04/13 Python