当前位置:Gxlcms > PHP教程 > <tr><td>测试</td><tr>想替换为<LI>测试</LI>求PHP正则替换,谢谢。

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

时间:2021-07-01 10:21:17 帮助过:5人阅读

如题:
测试想替换为
  • 测试
  • 求PHP 正则替换,谢谢。

    因为我的HTML代码如下:
    新闻一 2014-03-12
    新闻二 2014-02-20


    想替换成
    • 新闻一 2014-03-12
    • 新闻二 2014-02-20



    回复讨论(解决方案)

    先匹配。再拼装结果。

    $s=<<< TXT
    新闻一 2014-03-12
    新闻二 2014-02-20
    TXT; preg_match_all('#]+>\s*]+>(.+?)\s*]+>(.+?)<#s',$s,$m);$html="
      \n";foreach($m[1] as $k=>$v) $html .= "
    • $v {$m[2][$k]}
    • \n";$html .= '
    ';echo $html;

    用str_replace要好一点吧

    先匹配。再拼装结果。

    $s=<<< TXT
    新闻一 2014-03-12
    新闻二 2014-02-20
    TXT; preg_match_all('#]+>\s*]+>(.+?)\s*]+>(.+?)<#s',$s,$m);$html="
      \n";foreach($m[1] as $k=>$v) $html .= "
    • $v {$m[2][$k]}
    • \n";$html .= '
    ';echo $html;


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

    不过我还想 超链接那一段能够有具体地址,形如:
    • 新闻一 2014-03-12
    • 新闻二 2014-02-20


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

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

       preg_match_all('#]+>\s*]+>(.+?)\s*]+>(.+?)<#s',$s,$m);$html="
        \n";foreach($m[1] as $k=>$v) $html .= "
      • {$m[2][$k]} {$m[3][$k]}
      • \n";$html .= '
      ';echo $html;

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

    人气教程排行