提取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的chr和ord函数实现字符加减乘除运算实现代码
Dec 05 PHP
div li的多行多列 无刷新分页示例代码
Oct 16 PHP
PHP jQuery表单,带验证具体实现方法
Feb 15 PHP
简单解析PHP程序的运行流程
Jun 23 PHP
php实现websocket实时消息推送
Mar 30 PHP
PHP多个图片压缩成ZIP的方法
Aug 18 PHP
php进程daemon化的正确实现方法
Sep 06 PHP
在Laravel 中实现是否关注的示例
Oct 22 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
Apr 23 PHP
php提高脚本性能的4个技巧
Aug 18 PHP
WordPress多语言翻译插件 - WPML使用教程
Apr 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
造势之举?韩国总统候选人发布《星际争霸》地图
2017/04/22 星际争霸
PHP按行读取文件时删除换行符的3种方法
2014/05/04 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
JavaScript 捕获窗口关闭事件
2009/07/26 Javascript
jQuery 白痴级入门教程
2009/11/11 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
从零开始搭建webpack+react开发环境的详细步骤
2018/05/18 Javascript
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
vue遍历生成的输入框 绑定及修改值示例
2019/10/30 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
vue实现简单图片上传
2020/06/30 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
python中字典(Dictionary)用法实例详解
2015/05/30 Python
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
django的ORM模型的实现原理
2019/03/04 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
2019/03/05 Python
python 求某条线上特定x值或y值的点坐标方法
2019/07/09 Python
Python 占位符的使用方法详解
2019/07/10 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
使用python+poco+夜神模拟器进行自动化测试实例
2020/04/23 Python
Keras官方中文文档:性能评估Metrices详解
2020/06/15 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
2020/11/20 Python
将HTML5 Canvas的内容保存为图片借助toDataURL实现
2013/05/20 HTML / CSS
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
香港钟表珠宝首饰商城:OneMallTime网摩间
2016/10/14 全球购物
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
质量标语大全
2014/06/12 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
小学副班长竞选稿
2015/11/21 职场文书
golang实现浏览器导出excel文件功能
2022/03/25 Golang