preg_match_allを使用してリンクのhrefセクションを一致させる際に問題が発生しました。現在、3つのセクション(フルリンク、URLのみ、リンクテキストのみ)をキャプチャしていますが、URLのみの部分は、hrefの後にある他のタグをキャプチャしています。鬼ごっこ。
また、「href」テキストの大文字と小文字を区別しないようにするにはどうすればよいですか?
コード:
$content = '<a href="http://www.google.com" target="_blank">Google</a> is a search engine. <a href="http://www.yahoo.com" title="yahoo" target="_blank">Yahoo</a> is a search engine.';
preg_match_all('/<a href="([^<]*)">([^<]*)<\/a>/', $content, $matches);
print_r($matches);
結果:
Array
(
[0] => Array
(
[0] => <a href="http://www.google.com" target="_blank">Google</a>
[1] => <a href="http://www.yahoo.com" title="yahoo" target="_blank">Yahoo</a>
)
[1] => Array
(
[0] => http://www.google.com" target="_blank
[1] => http://www.yahoo.com" title="yahoo" target="_blank
)
[2] => Array
(
[0] => Google
[1] => Yahoo
)
)