提取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
怎样在UNIX系统下安装php3
Oct 09 PHP
在PHP中使用反射技术的架构插件使用说明
May 18 PHP
php printf输出格式使用说明
Dec 05 PHP
Php中文件下载功能实现超详细流程分析
Jun 13 PHP
php上传文件,创建递归目录的实例代码
Oct 18 PHP
一个基于phpQuery的php通用采集类分享
Apr 09 PHP
服务器迁移php版本不同可能诱发的问题
Dec 22 PHP
Yii视图CGridView列表用法实例分析
Jul 12 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
May 02 PHP
laravel withCount 统计关联数量的方法
Oct 10 PHP
php swoft框架实例用法
Dec 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实现的增强性mhash函数
2015/05/27 PHP
PHP制作用户注册系统
2015/10/23 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
javascript的事件描述
2006/09/08 Javascript
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
Mootools 1.2教程 事件处理
2009/09/15 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
js+div实现图片滚动效果代码
2014/02/10 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
2016/07/05 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
2016/08/09 Javascript
node.js的事件机制
2017/02/08 Javascript
Angular 4环境准备与Angular cli创建项目详解
2017/05/27 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
JS中如何轻松遍历对象属性的方式总结
2019/08/06 Javascript
layui数据表格重载实现往后台传参
2019/11/15 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
用Python的线程来解决生产者消费问题的示例
2015/04/02 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
2015/12/08 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
python根据list重命名文件夹里的所有文件实例
2018/10/25 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
python3中numpy函数tile的用法详解
2019/12/04 Python
HTML5 本地存储和内容按需加载的思路和方法
2011/04/07 HTML / CSS
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
澳大利亚最好的电动自行车:Leon Cycle
2020/12/19 全球购物
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
2015/10/13 面试题
小学母亲节活动总结
2015/02/10 职场文书
美国运营商 T-Mobile 以 117.83Mb/s 的速度排第一位
2022/04/21 数码科技
Python中npy和mat文件的保存与读取
2022/04/24 Python
Nginx 502 bad gateway错误解决的九种方案及原因
2022/08/14 Servers