这个可以查考已经有的模板工具中的正则表达式修改,例如phplib里面的,smarttemplate里面的,学习吗,不要太懒了

解决方案 »

  1.   

    不知道你到底要怎么替换,用正则表达式,'@<!--beginunit\s+name=([A-Za-z]+)-->(.*)<!--endunit--!>@sm'
      

  2.   

    呵呵……
    急着要啊!不知道那是什么东西!
    我的意思是!
    <!--beginunit name=xxx--!>
    内容
    <!--endunit--!>
    替换以后
    <!--beginunit name=xxx--!>
    “原代码……”
    <!--endunit--!>
      

  3.   

    还是不太明白楼主的意思。
    <!--beginunit name=xxx--!>
    内容
    <!--endunit--!>
    替换以后
    <!--beginunit name=xxx--!>
    “原代码……”
    <!--endunit--!>
    这两个有什么不同吗?格式还是一样的。
      

  4.   

    1、不知道<!--beginunit name=xxx--!>时候出现。
    2、不知道怎么提取出来~!
    3、对不同的name,进行不同的替换
      

  5.   

    $doc =<<< TEXT
    <!--beginunit name=xxx--!>
    内容
    <!--endunit--!>
    TEXT;$name = "xxx";
    $t = "原代码……";
    $doc = preg_replace("/(<!--beginunit name=$name--!>).*(<!--endunit--!>)/sU","\\1$t\\2",$doc);注意此法不允许标记嵌套
      

  6.   

    to:唠叨老大
    1、我更本就不知道xxx是什么,如果知道,就好办了!
    2、我也不知道会出现多少次
    <!--beginunit name=xxx--!>
    内容
    <!--endunit--!>
    我本来的想法是内容写到数据库里,用的时候好调。
    下一次修改的时候只改
    <!--beginunit name=xxx--!>
    内容
    <!--endunit--!>
    相对应的数据库里的内容。
    这样可以不动用原文件,而且可以多次修改。
      

  7.   

    1、我更本就不知道xxx是什么,如果知道,就好办了!
    如果你不知道需要操作的对象,那我也无话可说2、我也不知道会出现多少次
    <!--beginunit name=xxx--!>
    内容
    <!--endunit--!>
    这没有关系,只要不是
    <!--beginunit name=xxx--!>
    内容
    <!--beginunit name=xxx--!>
    内容
    <!--endunit--!>
    <!--endunit--!>
    这样嵌套就可以
      

  8.   

    to:唠叨老大
    我比较笨啊,我就是通篇文档找不出有几个不同的name出来!
    能否指教一下,怎么找?!
      

  9.   

    $doc =<<< TEXT
    <!--beginunit name=aaa--!>
    内容
    <!--endunit--!>
    TEXT;$aaa = "原代码……";
    $doc = preg_replace("/(<!--beginunit name=(\w+)--!>).*(<!--endunit--!>)/esU","'\\1'.$\\2.'\\3'",$doc);echo $doc
      

  10.   

    用 smarty 来做,可以用里面的模版方式来解决,这个相当方便!