当前位置:首页> PHP教程> php进阶
关键字
文章内容
提取HTML标签代码
 
 
修改时间:[2009/11/20 18:45]    阅读次数:[1557]    发表者:[起缘]
 
<?php
/*********************************

*  作者: 徐祖宁 (唠叨)
*  邮箱: [email protected]
*  开发: 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(rn,,$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技术网站, 有相当丰富的文章和源代码.)