[PHP]正規表現でリンクを取得

htmlからリンクだけを抜き出したい

それじゃあ正規表現だ

ここを参考に取得したhtmlを使って、リンクを抜き出します。
リンクなので、[ <a href=”http://hogehoge”>hogehoge</a> ]ってのを抜き出せば良いことになります。

下記のような正規表現で取得できます

&amp;amp;lt;?php
function getLinks($html){
$preg_string = '/&amp;amp;lt;a[^&amp;amp;gt;]hrefs?=s?["']([^"']+)["'][^&amp;amp;gt;]*&amp;amp;gt;/i';
preg_match_all($preg_string, $html, $out, PREG_PATTERN_ORDER);

return $out[1];
}
?&amp;amp;gt;

$out[0]だと、<a href= … も含まれた状態の配列で、検索結果が返ってきます。
$out[1]だと、リンクのurlのみ返ってきます。

参考記事

[PHP]HTMLを取得