文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>分析HTML,并将结果存到一个数组中。看看里面的注释吧。:)

分析HTML,并将结果存到一个数组中。看看里面的注释吧。:)

时间:2007-02-17  来源:PHP爱好者

<?php
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
/* 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
* parseHtml.php 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
* Author: Carlos Costa Jordao 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
* Email: [email protected]

中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
* My notation of variables: 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
* i_ = integer, ex: i_count 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
* a_ = array,       a_html 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
* b_ = boolean, 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
* s_ = string 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5

中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
* What it does: 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
* - parses a html string and get the tags 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
*   - exceptions: html tags like <br> <hr> </a>, etc 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
* - At the end, the array will look like this: 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
*      ["IMG"][0]["SRC"] = "xxx" 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
*      ["IMG"][1]["SRC"] = "xxx" 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
*      ["IMG"][1]["ALT"] = "xxx" 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
*      ["A"][0]["HREF"] = "xxx" 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5

中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
*/ 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
function parseHtml( $s_str ) 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5

中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$i_indicatorL = 0; 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$i_indicatorR = 0; 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$s_tagOption = ""; 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$i_arrayCounter = 0; 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$a_html = array(); 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
// Search for a tag in string 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
while( is_int(($i_indicatorL=strpos($s_str,"<",$i_indicatorR))) ) { 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
// Get everything into tag... 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$i_indicatorL++; 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$i_indicatorR = strpos($s_str,">", $i_indicatorL); 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$s_temp = substr($s_str, $i_indicatorL, ($i_indicatorR-$i_indicatorL) ); 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$a_tag = explode( ' ', $s_temp ); 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
// Here we get the tag's name 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
list( ,$s_tagName,, ) = each($a_tag); 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$s_tagName = strtoupper($s_tagName); 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
// Well, I am not interesting in <br>, </font> or anything else like that... 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
// So, this is false for tags without options. 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$b_boolOptions = is_array(($s_tagOption=each($a_tag))) && $s_tagOption[1]; 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
if( $b_boolOptions ) { 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
// Without this, we will mess up the array 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$i_arrayCounter = (int)count($a_html[$s_tagName]); 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
// get the tag options, like src="htt://". Here, s_tagTokOption is 'src'
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
and s_tagTokValue is '"http://"'
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5

中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
do { 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$s_tagTokOption = strtoupper(strtok($s_tagOption[1], "=")); 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$s_tagTokValue  = trim(strtok("=")); 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$a_html[$s_tagName][$i_arrayCounter][$s_tagTokOption] =
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$s_tagTokValue; 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$b_boolOptions = is_array(($s_tagOption=each($a_tag))) &&
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
$s_tagOption[1]; 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
} while( $b_boolOptions ); 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5

中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5

中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
return $a_html; 
中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5

中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5

中国IT动力UaimAQhUEp1HpOa1e2Wqfzmw5
?>
php爱好 者站 http://www.phpfans.net php基础|php进阶|php模板.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载