本帖最后由 subendong 于 2011-01-14 21:52:42 编辑

解决方案 »

  1.   

    $html = '<html><body>{{aaaa.Title|mb_substr("aaaa.Title", 0, 10, "gb2312");}}</body></html>';
    $match = "/(<body\s*>)(.*?)(<\/body>)/";
    $str = preg_replace($match , '\\1abcdefg\\3' , $html);
    echo $str;//<html><body>abcdefg</body></html>是这个意思吗
      

  2.   

    模板里有很多html标记也有很多类似{{aaaa.Title|mb_substr("aaaa.Title", 0, 10, "gb2312");}}的字符串。继续等待
      

  3.   

    <html>
    <head>
    <title>abc</title>
    </head>
    <body>
    <table border="1">
    {{foreach sql="select * from z_news limit 0,10" result="news"}}
      <tr>
      <td>{{$news[NewsID]|if( $news[NewsID] == 1 ){$news[NewsID]="abc";} else {$news[NewsID]="king";} }}</td>
      <td>{{$news[Title]}}</td>
      <td>{{date("Y-m-d", strtotime($news[UpdateTime]))}}</td>
      </tr>
    {{/foreach}}
    </table><table border="1">
    {{foreach sql="select * from z_news order by NewsID desc limit 0,10" result="aaaa"}}
      <tr>
      <td>{{$aaaa[NewsID]}}</td>
      <td>{{mb_substr($aaaa[Title], 0, 10, "gb2312")}}</td>
      <td>{{date("Y-m-d", strtotime($aaaa[UpdateTime]))}}</td>
      </tr>
    {{/foreach}}
    </table>
    </body>
    </html>
      

  4.   

    不知道楼主要的是不是这个效果
    <?php
    $str='
      <td>{{$aaaa[NewsID]}}</td>
      <td>{{mb_substr($aaaa[Title], 0, 10, "gb2312")}}</td>
      <td>{{date("Y-m-d", strtotime($aaaa[UpdateTime]))}}</td>
      </tr>
    {{/foreach}}
    </table>
    ';
    $pattern="/(.*){{(mb_substr)(.*?)}}{1}(.*)/is";
    $replace="{{\\2\\3}}";
    $result=preg_replace($pattern,$replace,$str);
    echo $result;
    ?>
      

  5.   

    上面的有点点没有去掉
    <?php
    $str='
      <td>{{$aaaa[NewsID]}}</td>
      <td>{{mb_substr($aaaa[Title], 0, 10, "gb2312")}}</td>
      <td>{{date("Y-m-d", strtotime($aaaa[UpdateTime]))}}</td>
      </tr>
    {{/foreach}}
    </table>
    ';
    $pattern="/(.*){{(mb_substr)(.*?)}}(.*)/is";
    $replace="{{\\2\\3}}";
    $result=preg_replace($pattern,$replace,$str);
    echo $result;
    ?>