2017-01-26 34 views
-2

我其中有一个URL片段的HTML内容看起来如下:PHP preg_match_all为特定值

<a href="#/news/0294928/what-a-great-idea"> 

我需要做的就是抓住/加#/新闻数量

任何好主意? 我试过以下,但对我来说,仅得到4结果

preg_match_all('/<a href="#\/news\/(.+)\/?\"?>/i', $html_cont, $matches); 

请帮助我,谢谢 。

+1

首先您使用XPath提取href属性,然后用'/'分解结果,然后将项目编号为2. –

+0

使用javascript的window.location.href抓取并在/上分开。从那里它是结果数组中的第三项。 –

+0

还有许多其他

回答

0

我的评论的细节:

$dom = new DOMDocument; 
libxml_use_internal_errors(true); 
$dom->loadHTML($yourHTML); 

$xp = new DOMXPath($dom); 
$hrefNodeList = $xp->query('//a/@href[starts-with(., "#/news/")]'); 

foreach ($hrefNodeList as $hrefNode) { 
    echo explode('/', $hrefNode->nodeValue)[2] . PHP_EOL; 
} 
+0

与preg_match_all任何想法() –

+0

@WilsonB​​reiner:。精确的主意,如果你想知道的,但我尽量避免低劣的代码 –