提取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 相关文章推荐
深入解析phpCB批量转换的代码示例
Jun 27 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
Aug 07 PHP
php对二维数组按指定键值key排序示例代码
Nov 26 PHP
php中sprintf与printf函数用法区别解析
Feb 17 PHP
php计算当前程序执行时间示例
Apr 24 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
Jul 08 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
Dec 26 PHP
大家都应该掌握的PHP关联数组使用技巧
Dec 25 PHP
linux下php上传文件注意事项
Jun 11 PHP
php中的登陆login实例代码
Jun 20 PHP
PHP后台微信支付和支付宝支付开发
Apr 28 PHP
详解阿里云视频直播PHP-SDK接入教程
Jul 09 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实现的功能是显示8条基色色带
2006/10/09 PHP
基于PHP Web开发MVC框架的Smarty使用说明
2013/04/19 PHP
探讨php中防止SQL注入最好的方法是什么
2013/06/10 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
php生成excel文件的简单方法
2014/02/08 PHP
简单谈谈php延迟静态绑定
2016/01/26 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
Firebug 字幕文件JSON地址获取代码
2009/10/28 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
2016/10/11 Javascript
JS双击变input框批量修改内容
2016/12/12 Javascript
代码详解Vuejs响应式原理
2017/12/20 Javascript
小程序自定义日历效果
2018/12/29 Javascript
JS实现继承的几种常用方式示例
2019/06/22 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
vue项目配置使用flow类型检查的步骤
2020/03/18 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
2020/07/22 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
JS遍历树层级关系实现原理解析
2020/08/31 Javascript
对于Python中线程问题的简单讲解
2015/04/03 Python
python自带的http模块详解
2016/11/06 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
2019/10/28 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
Python如何安装第三方模块
2020/05/28 Python
python安装读取grib库总结(推荐)
2020/06/24 Python
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
工商管理专业学生的自我评价
2013/10/01 职场文书
创业计划书的写作技巧及要点
2014/01/31 职场文书
《称赞》教学反思
2016/02/17 职场文书
餐厅开业活动方案
2019/07/08 职场文书
SpringMVC 整合SSM框架详解
2021/08/30 Java/Android