提取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扩展函数
Oct 09 PHP
php+mysql分页代码详解
Mar 27 PHP
php+mysql事务rollback&amp;commit示例
Feb 08 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
May 14 PHP
php支付宝手机网页支付类实例
Mar 04 PHP
利用PHP如何实现Socket服务器
Sep 23 PHP
php中array_slice和array_splice函数解析
Oct 18 PHP
php异步:在php中使用fsockopen curl实现类似异步处理的功能方法
Dec 10 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
Apr 20 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
Oct 24 PHP
php判断IP地址是否在多个IP段内
Aug 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
php中文件上传的安全问题
2006/10/09 PHP
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
php通过文件流方式复制文件的方法
2015/03/13 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
学习ExtJS table布局
2009/10/08 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
nodejs集成sqlite使用示例
2017/06/05 NodeJs
浅析Vue中method与computed的区别
2018/03/06 Javascript
详解Webpack + ES6 最新环境搭建与配置
2018/06/04 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
Python实现获取网站PR及百度权重
2015/01/21 Python
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
python解析json串与正则匹配对比方法
2018/12/20 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
Python数学形态学实例分析
2019/09/06 Python
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
Django静态资源部署404问题解决方案
2020/05/11 Python
python如何求圆的面积
2020/07/01 Python
Python:__eq__和__str__函数的使用示例
2020/09/26 Python
Shein英国:女性时尚网上商店
2019/04/10 全球购物
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
建龙钢铁面试总结
2014/04/15 面试题
高校生生产实习自我鉴定
2013/09/21 职场文书
车辆安全检查制度
2014/01/12 职场文书
个人房屋买卖协议书(范本)
2014/10/04 职场文书
村党的群众路线教育实践活动工作总结
2014/10/25 职场文书
报名委托书
2015/01/29 职场文书
工程部部长岗位职责
2015/02/12 职场文书
工作简历自我评价
2015/03/11 职场文书
暖春观后感
2015/06/08 职场文书
会议主持词通用版
2019/04/02 职场文书