[PHP-users 30270] 正規表現でタグの属性値を取り出すには?

小川 洋 | Hiroshi Ogawa wiredhiro @ ybb.ne.jp
2006年 9月 6日 (水) 18:58:52 JST


小川です。こんばんは。

正規表現で<td>タグの要素と、hrefの属性値を取り出した 
いと思い、下記のようなコードを書きました。
<td>タグの要素は取り出せるのですが、hrefの属性値「images/ 
1100025001p2.jpg」が取り出せません。
どなたか、適切なアドバイスをよろしくお願いします。

<?php
//初期化
$matches="";
//文字列全体
$html='<h1 class="line_h1_ico_land">佐倉 市 井野</ 
h1><td><a href="images/1100025001p2.jpg" target="_blank"><img  
src="images/1100025001p1.jpg" border="0"></a></td>あいう<td  
colspan="2">えおか</td><td>きくけ</td><td>こさし</ 
td><td>すせそbnnjhgghあああああぴ ここ き</td><td>12345</ 
td>';

preg_match_all("!(<a\s.*?\bhref\s*=\s* 
((\"([^\"]+)\")|[^\'\"\s]+)| 
\'([^\']+)\'[^>]*>)|(<h1\s?(\".*? 
\"|\'.*?\'|[^'\"])*?>(.*?)</h1>)|(<td\s? 
(\".*?\"|\'.*?\'|[^'\"])*?>(.*?)</td>)!", 
$html,$matches);

for($i=0; $i<count($matches[0]); $i++)
{
	echo "要素:".strip_tags($matches[0][$i])."<br>";
	//echo "要素:".$matches[0][$i]."<br>";
}
?>


PHP-users メーリングリストの案内