我使用書籍Webbots,Spiders和Screen Scrapers的parse_array函數來解析我的需求。不過,我需要修改這個功能很少,我不知道該怎麼做。需要幫助修改一個函數(正則表達式)
功能:
function parse_array($string, $beg_tag, $close_tag)
{
preg_match_all("($beg_tag(.*)$close_tag)siU", $string, $matching_data);
return $matching_data[0];
}
工作原理:
$html="<div>
afterfirst
<div>nested</div>
this is lost
</div>
<div>div2</div>" ;
$div_array = parse_array($html,"<div", "</div>") ;
echo $div_array[0]. "</br>" ;
//outputs:
<div>
afterfirst
<div>nested</div>
//the line "this is lost" and the last </div> isn't included.
基本上功能不能與嵌套標籤
可能的處理來改變功能,因此它能夠處理嵌套標籤?即不是停在下一個結束標記處,而是跟蹤任何其他嵌套標記並僅在正確結束標記後停止
任何幫助?
感謝
編輯:我知道正則表達式是不是reommended進行解析,並有PHP的DOM和simplehtmldom,但這解析陣列功能的偉大工程,如果只要它可以處理嵌套的標籤,這將是完善!所以任何幫助,將不勝感激。請給我一些提示,如果不是完整的解決方案,請。
你走了,正則表達式解析糟糕。你不能只加載一個DOMDocument的HTML例如?另外,如果這是他們所宣傳的內容,請將本書裝入本書。 – Wrikken 2011-03-12 10:54:49
這就是爲什麼我們不使用正則表達式來解析HTML。 – 2011-03-12 10:55:15
這本書是相當神奇順便說一句。 – 2011-03-12 11:28:37