2014-01-25 72 views
0

A HREF值我有內部找到與正則表達式

<link rel="next" type="application/atom+xml" href="https://xxxxxxxx.com?page=2"/> 

用下面的代碼文件有一些正則表達式,將尋找一個鏈接標籤與「未來」的相對幫我href值?這遠遠超出了我的正則表達式技能。

在此先感謝

+2

不建議使用正則表達式解析HTML。只有在'link'標籤將以特定方式格式化時,纔可以嘗試regex。否則你會看到許多不同的情況通過正則表達式。 – RaviH

回答

0

試試這個

href=[\'"]?([^\'" >]+) 
1

這種類型的分析應該不是真的從正則表達式來完成的HTML意想不到的性質可以打破正則表達式隨時隨地。

考慮這個基於DOM的代碼,這個工作:

$dom = new DOMDocument; 
$dom->loadXML(
    '<link rel="next" type="application/atom+xml" href="https://xxxxxxxx.com?page=2"/>'); 
$xpath = new DOMXPath($dom); 
$nodelist = $xpath->query("//link[contains(@rel, 'next')]"); 
for($i=0; $i < $nodelist->length; $i++) { 
    $node = $nodelist->item($i); 
    echo $node->getAttribute('href') . "\n"; 
} 

OUTPUT:

https://xxxxxxxx.com?page=2