ホームページ  >  記事  >  バックエンド開発  >  HTML を解析し、結果を配列に保存します。中のコメントを見てください。 _PHP チュートリアル

HTML を解析し、結果を配列に保存します。中のコメントを見てください。 _PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:30:231042ブラウズ

/*
* parseHtml.php
* 著者: Carlos Costa Jordao
* 電子メール: carlosjordao@yahoo.com
*
* 私の変数の表記:
* i_ = 整数、例: i_count
* a_ = 配列、a_html
* b_ = ブール値、
* s_ = 文字列
*
* 機能:
* - HTML 文字列を解析し、タグを取得します
* - 例外:


などの HTML タグ
* - 最後に、配列次のようになります:
* ["IMG"][0]["SRC"] = "xxx"
* ["IMG"][1]["SRC"] = "xxx"
* ["IMG"] [1]["ALT"] = "xxx"
* ["A"][0]["HREF"] = "xxx"
*
*/
関数 parseHtml( $s_str )
{
$i_indicatorL = 0 ;
$i_indicatorR = 0;
$s_tagOption = "";
$i_arrayCounter = 0;
$a_html = array();
// 文字列内のタグを検索します
while( is_int(($i_indicatorL=strpos($s_str," // すべてをタグに入れます...
$i_indicatorL++;

$i_indicatorR = strpos($s_str,">", $i_indicatorL);
$s_temp = substr($s_str, $i_indicatorL, ($i_indicatorR-$i_indicatorL) );
$a_tag =explode( , $s_temp );
// ここでタグ名を取得します
list( ,$s_tagName,, ) = each($a_tag);
$s_tagName = strtoupper($s_tagName);
// まあ、私は
や などには興味がありません...
// つまり、オプションのないタグの場合、これは false になります。
$b_boolOptions = is_array(($s_tagOption=each($a_tag))) && $s_tagOption[1];
if( $b_boolOptions ) {
// これがないと配列がめちゃくちゃになります
$i_arrayCounter = (int)count($a_html[$s_tagName]);
// src=/DownloadFilesa2001-12-16htt: のようなタグ オプションを取得します。ここで、s_tagTokOption は src
、s_tagTokValue は "http://"

do {
$s_tagTokOption = strtoupper(strtok($s_tagOption[1], "="));
$s_tagTokValue = トリム(strtok("="));
$a_html[$s_tagName][$i_arrayCounter][$s_tagTokOption] =
$s_tagTokValue;
$b_boolOptions = is_array(($s_tagOption=each($a_tag))) &&
$s_tagOption[1];
} while( $b_boolOptions );
}
}
$a_html を返します。
}

?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/509177.html技術記事 /* * parseHtml.php * 著者: Carlos Costa Jordao * 電子メール: carlosjordao@yahoo.com * * 私の変数の表記: * i_ = 整数、例: i_count * a_ = 配列、a_html * b_ = ブール値、* s_.. .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。