2011-09-19 74 views
0

如果我解析類似Apache網站的東西,我有一個似乎很難解決的具體問題。當解析器變爲HTML時:PHP strip_tags和標記大小問題

<li><a href="http://xml.apache.org/" title="XML solutions focused on the web">XML</a></li> 
<li><a href="http://xmlbeans.apache.org/" title="XML-Java binding tool">XMLBeans</a></li> 
<li><a href="http://xmlgraphics.apache.org/" title="Conversion from XML to graphical output">XML Graphics</a></li> 

它失敗。問題似乎是,我會打電話給PHP strip_tags函數,該函數可以正確刪除所有HTML標記。結果(如果它的工作就像我所預料的)會是:

XMLXML BeansXML Graphics 

這個結果是通過採取這種文字和簡單的刪除所有標記生成的字符串。幸運的(以一種方式),用strip_tags實際上似乎空間出來的文字正確,贈送:

XML XML Beans XML Graphics 

這裏是我的問題:當我記號化這個字符串由空格,(例如,在「」傳遞給strtok的第二個參數) ,這些詞不分裂。整個網站得到正確的標記,除了這一點。有沒有人知道當strip_tags與它們結束時,這些詞之間會出現什麼樣的字符,以便我可以用它來標記化?

+0

一旦你去除HTML,你將失去它提供的信息。我看不到使用真正的HTML解析器而不是原始字符串操作函數的其他方式。 –

回答

1

你也許可以嘗試像

$html = preg_replace('/(>?)\s+</', '\1<', $html); 

標籤之前剝去任何空白,但我不會靠這個。你應該考慮使用一個真正的HTML解析器來完成這個任務,或者再考慮一下你所想的解析器是否真的產生了你想要的東西。

0

如果您的HTML格式爲選項卡,則可能是選項卡而不是空格。由於您正在處理HTML,並且它失去了原始結構的所有外觀,所以您可以隨時用空格替換所有制表符(如果需要,甚至可以使用多個空格)。然後,在標記時可以安全地使用空格。