提取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 相关文章推荐
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
Mar 19 PHP
使用php伪造referer的方法 利用referer防止图片盗链
Jan 20 PHP
PHP实现HTML生成PDF文件的方法
Nov 07 PHP
PHP清除字符串中所有无用标签的方法
Dec 01 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 PHP
php计算两个坐标(经度,纬度)之间距离的方法
Apr 17 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
Jan 14 PHP
PHP基于DOM创建xml文档的方法示例
Feb 08 PHP
PHP convert_cyr_string()函数讲解
Feb 13 PHP
PHP自动生成缩略图函数的源码示例
Mar 18 PHP
PHP二维数组分页2种实现方法解析
Jul 09 PHP
PHP命令行与定时任务
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
基于文本的访客签到簿
2006/10/09 PHP
浅析php插件 HTMLPurifier HTML解析器
2013/07/01 PHP
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
JavaScript获得指定对象大小的方法
2015/07/01 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
2015/09/15 Javascript
JavaScript随机打乱数组顺序之随机洗牌算法
2016/08/02 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
python结合API实现即时天气信息
2016/01/19 Python
详解Python的Django框架中manage命令的使用与扩展
2016/04/11 Python
python 系统调用的实例详解
2017/07/11 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
python爬取亚马逊书籍信息代码分享
2017/12/09 Python
python实现微信自动回复功能
2018/04/11 Python
python切片及sys.argv[]用法详解
2018/05/25 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
在unittest中使用 logging 模块记录测试数据的方法
2018/11/30 Python
python 二维数组90度旋转的方法
2019/01/28 Python
Python对接支付宝支付自实现功能
2019/10/10 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
2019/12/26 Python
python判断链表是否有环的实例代码
2020/01/31 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
python属于解释型语言么
2020/06/15 Python
Python调用百度OCR实现图片文字识别的示例代码
2020/07/17 Python
HTML5本地存储之IndexedDB
2017/06/16 HTML / CSS
大学生四个方面的自我评价
2013/09/19 职场文书
银行批评与自我批评
2014/02/10 职场文书
广告学专业自荐信范文
2014/02/24 职场文书
项目投资意向书
2014/04/01 职场文书
2015教师个人师德工作总结
2015/10/23 职场文书
MySQL 存储过程的优缺点分析
2021/05/20 MySQL
分享3个非常实用的 Python 模块
2022/03/03 Python