2017-01-26 6 views
-2

私はURLフラグメントを持つHTMLコンテンツを持っているが、以下のようになります。PHPのpreg_match_all

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

私が行うために必要なものは、単に#/ニュース/

続い数をつかむためにありますいいアイデア? 私は、次の試してみましたが、それは私

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

のための唯一の4の結果を取得し、 おかげで私を助けてください。

+1

まず、XPathを使用してhref属性を抽出し、結果を '/'で爆発させ、項目番号2を取得します。 –

+0

javascriptのwindow.location.hrefを使ってグラブし、/で分割します。そこから結果の配列の3番目の項目です。 –

+0

他にも多くの

答えて

0

私のコメントの詳細:$ mのよう

$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:あなたが知りたい場合は正確なアイデアですが、私はちっちゃいコードを避けてください。 –