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

WBOY
Freigeben: 2016-06-23 14:00:44
Original
1116 Leute haben es durchsucht

如题:

测试 想替换为
  • 测试
  • 求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>
    Nach dem Login kopieren


    想替换成
    <ul data-role="listview"  >    <li><a href="#">新闻一 2014-03-12</a></li>    <li><a href="#">新闻二 2014-02-20</a></li> </ul>
    Nach dem Login kopieren



    回复讨论(解决方案)

    先匹配。再拼装结果。

    $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;
    Nach dem Login kopieren
    Nach dem Login kopieren

    用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;
    Nach dem Login kopieren
    Nach dem Login kopieren


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

    不过我还想 超链接那一段能够有具体地址,形如:
    <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
    Nach dem Login kopieren


    版主高手啊,正则 还有 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;
    Nach dem Login kopieren

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

    Quelle:php.cn
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage