提取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 相关文章推荐
将数组写入txt文件 var_export
Apr 21 PHP
php邮件发送,php发送邮件的类
Mar 24 PHP
PHP的explode和implode的使用说明
Jul 17 PHP
PHP简洁函数小结
Aug 12 PHP
php中调用其他系统http接口的方法说明
Feb 28 PHP
Codeigniter操作数据库表的优化写法总结
Jun 12 PHP
PHP使用http_build_query()构造URL字符串的方法
Apr 02 PHP
PHP数组函数知识汇总
May 12 PHP
php文件系统处理方法小结
May 23 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
May 28 PHP
[原创]smarty简单模板变量输出方法
Jul 09 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 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简单实现MVC
2015/02/05 PHP
Yii中的relations数据关联查询及统计功能用法详解
2016/07/14 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
2016/10/18 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
laravel 实现根据字段不同值做不同查询
2019/10/23 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
2020/04/23 PHP
发现的以前不知道的函数
2006/09/19 Javascript
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
js实现幻灯片效果(基于jquery插件)
2013/11/05 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
jQuery stop()用法实例详解
2016/07/28 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
vue2.0 datepicker使用方法
2018/02/04 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
Python3通过Luhn算法快速验证信用卡卡号的方法
2015/05/14 Python
python数据结构之图的实现方法
2015/07/08 Python
Python获取某一天是星期几的方法示例
2017/01/17 Python
Python简单操作sqlite3的方法示例
2017/03/22 Python
Python 反转字符串(reverse)的方法小结
2018/02/20 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
python绘制直线的方法
2018/06/30 Python
对python中UDP,socket的使用详解
2019/08/22 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
python利用opencv实现颜色检测
2021/02/23 Python
php优化查询foreach代码实例讲解
2021/03/24 PHP
室内设计专业个人的自我评价
2013/12/18 职场文书
导师推荐信范文
2014/05/09 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
未婚证明书模板
2014/10/08 职场文书
硕士毕业答辩开场白
2015/05/27 职场文书
生日宴会祝酒词
2015/08/10 职场文书
建筑工程挂靠协议书
2016/03/23 职场文书