如题:
<tr><td>测试</td><tr>想替换为<LI>测试</LI>求PHP 正则替换,谢谢。
因为我的HTML代码如下:
<table width="96%"border="0" align="center" cellpadding="4" cellspacing="0">
<tr onMouseOver="this.style.backgroundColor='#EAEAEA'; return true;" onMouseOut="this.style.backgroundColor='transparent';">
<td><a href="news_detail.php?infoId=141" class="link">新闻一</a></td>
<td align="right" class="newstime">2014-03-12</td>
</tr>
<tr onMouseOver="this.style.backgroundColor='#EAEAEA'; return true;" onMouseOut="this.style.backgroundColor='transparent';">
<td><a href="news_detail.php?infoId=140" class="link">新闻二</a></td>
<td align="right" class="newstime">2014-02-20</td>
</tr>
</table>
想替换成
<ul data-role="listview" >
<li><a href="#">新闻一 2014-03-12</a></li>
<li><a href="#">新闻二 2014-02-20</a></li>
</ul>
------解决方案--------------------
先匹配。再拼装结果。
$s=<<< TXT
<table width="96%"border="0" align="center" cellpadding="4" cellspacing="0">
<tr onMouseOver="this.style.backgroundColor='#EAEAEA'; return true;" onMouseOut="this.style.backgroundColor='transparent';">
<td><a href="news_detail.php?infoId=141" class="link">新闻一</a></td>
<td align="right" class="newstime">2014-03-12</td>
</tr>
<tr onMouseOver="this.style.backgroundColor='#EAEAEA'; return true;" onMouseOut="this.style.backgroundColor='transparent';">
<td><a href="news_detail.php?infoId=140" class="link">新闻二</a></td>
<td align="right" class="newstime">2014-02-20</td>
</tr>
</table>
TXT;
preg_match_all('#<tr[^>]+>\s*<td><a[^>]+>(.+?)</a></td>\s*<td[^>]+>(.+?)<#s',$s,$m);
$html="<ul data-role=\"listview\" >\n";
foreach($m[1] as $k=>$v) $html .= "<li><a href=\"#\">$v {$m[2][$k]}</a></li>\n";
$html .= '</ul>';
echo $html;
------解决方案--------------------
用str_replace要好一点吧