Home > Backend Development > PHP Tutorial > <tr><td>测试</td><tr>想替换为<LI>测试</LI>求PHP 正则替换,谢谢。

<tr><td>测试</td><tr>想替换为<LI>测试</LI>求PHP 正则替换,谢谢。

WBOY
Release: 2016-06-23 14:00:44
Original
1142 people have browsed it

如题:

测试 想替换为
  • 测试
  • 求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>
    Copy after login


    想替换成
    <ul data-role="listview"  >    <li><a href="#">新闻一 2014-03-12</a></li>    <li><a href="#">新闻二 2014-02-20</a></li> </ul>
    Copy after login



    回复讨论(解决方案)

    先匹配。再拼装结果。

    $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('#]+>\s*]+>(.+?)\s*]+>(.+?)<#s',$s,$m);$html="';echo $html;
    Copy after login
    Copy after login

    用str_replace要好一点吧

    先匹配。再拼装结果。

    $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('#]+>\s*]+>(.+?)\s*]+>(.+?)<#s',$s,$m);$html="';echo $html;
    Copy after login
    Copy after login


    非常感谢版主的回答
    测试了一下,果然是有效果的。

    不过我还想 超链接那一段能够有具体地址,形如:
    <ul data-role="listview"  >    <li><a href="news_detail.php?infoId=141">新闻一 2014-03-12</a></li>    <li><a href="news_detail.php?infoId=140">新闻二 2014-02-20</a></li>  </ul
    Copy after login


    版主高手啊,正则 还有 FOREACH能不能大概给个解释,谢谢啊。

    高手,分不够还可以再加~~~~
    谢谢。

     preg_match_all('#<tr[^>]+>\s*<td><a\s*href="(.+?)"[^>]+>(.+?)</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]} {$m[3][$k]}</a></li>\n";$html .= '</ul>';echo $html;
    Copy after login

    版主非常强大啊~~~
    赞一个~
    结贴,哈。

    source:php.cn
    Statement of this Website
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
    Popular Tutorials
    More>
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template