我正在尋找一些PHP中的HTML解析器,它可以幫助我從html源文件中提取href values
。解析HTML源以提取錨點和鏈接標記href值
我看着phpQuery及其最好的,但它是對我的需求過於矯枉過正,並使大量的CPU做額外的東西,我不需要。
我還檢查
$ DOM =新的DomDocument();
$ dom-> loadHTML($ html);
但它有問題解析HTML5
標籤。
有沒有更好的library/class
還是有辦法做到這一點?
我正在尋找一些PHP中的HTML解析器,它可以幫助我從html源文件中提取href values
。解析HTML源以提取錨點和鏈接標記href值
我看着phpQuery及其最好的,但它是對我的需求過於矯枉過正,並使大量的CPU做額外的東西,我不需要。
我還檢查
$ DOM =新的DomDocument();
$ dom-> loadHTML($ html);
但它有問題解析HTML5
標籤。
有沒有更好的library/class
還是有辦法做到這一點?
那麼,你可以使用正則表達式來提取數據:
$html = "This is some stuff right here. <a href='index.html'>Check this out!</a> <a href=herp.html>And this is another thing!</a> <a href=\"derp.html\">OH MY GOSH</a>";
preg_match_all('/href=[\'"]?([^\s\>\'"]*)[\'"\>]/', $html, $matches);
$hrefs = ($matches[1] ? $matches[1] : false);
print_r($hrefs);
simplehtmldom是一個方便的PHP HTML解析類
我用這個 - -
$html = '<a href="http://google.com"><img src="images/a.png" /></a>';
preg_match('/href="([^\s"]+)/', $html, $match);
echo '<pre>';
print_r($match);
您是否僅從錨點和鏈接標籤中提取href?爲什麼在這種情況下HTML5標籤會影響你?你看過DOMXPath嗎? – 2011-03-22 20:42:43
@tandu,'loadHTML'實際上是針對HTML4進行驗證的。嘗試使用HTML5標籤(例如「」)會導致警告。也就是說,當我測試它時,似乎確實使標籤可以找到並且可以序列化。 –
Charles
2011-03-22 20:55:34