什么函数,PHP函数还是JS函数。
如果是PHP函数的话倒觉得没必要
如果是JS函数的话,就没有难度了。
所以不知道楼主想问的是什么,先说清楚吧

解决方案 »

  1.   

    这个问题都问?????????????????????????function aa(){
       echo "pig";
    }aa();
      

  2.   

    $aa = "<"."? fun();?".">";echo $aa;
    这个试一下
      

  3.   

    俺问的是模板 Template, 各位不是没有接触过,
    这个类,是不是各位没有见过?
    我只看过关于这个类的使用的一点点教程(说实话,一个比一个讲的差)
    教程上只是简单的把一个变量解析了,可是我要把自定义函数也解析了,不知道该怎么做啊!还有,请各位老大认真一点,别以为就你会PHP,
    像这个,
    $aa = "<"."? fun();?".">";echo $aa;
    什么完意儿,没有一点让真的态度。
    ------------------------------------<?php
    class Template {
      var $classname = "Template";  /* if set, echo assignments */
      var $debug     = false;  /* $file[handle] = "filename"; */
      var $file  = array();  /* relative filenames are relative to this pathname */
      var $root   = "";  /* $varkeys[key] = "key"; $varvals[key] = "value"; */
      var $varkeys = array();
      var $varvals = array();  var $unknowns = "remove";
      
      /* "yes" => halt, "report" => report error, continue, "no" => ignore error quietly */
      var $halt_on_error  = "yes";
      
      /* last error message is retained here */
      var $last_error     = "";
     
      function Template($root = ".", $unknowns = "remove") {
        $this->set_root($root);
        $this->set_unknowns($unknowns);
      } 
      function set_root($root) {
        if (!is_dir($root)) {
          $this->halt("set_root: $root is not a directory.");
          return false;
        }
        
        $this->root = $root;
        return true;
      }  function set_unknowns($unknowns = "keep") {
        $this->unknowns = $unknowns;
      } 
      function set_file($handle, $filename = "") {
        if (!is_array($handle)) {
          if ($filename == "") {
            $this->halt("set_file: For handle $handle filename is empty.");
            return false;
          }
          $this->file[$handle] = $this->filename($filename);
        } else {
          reset($handle);
          while(list($h, $f) = each($handle)) {
            $this->file[$h] = $this->filename($f);
          }
        }
      } 
      function set_block($parent, $handle, $name = "") {
        if (!$this->loadfile($parent)) {
          $this->halt("subst: unable to load $parent.");
          return false;
        }
        if ($name == "")
          $name = $handle;    $str = $this->get_var($parent);
        $reg = "/<!--\s+BEGIN $handle\s+-->(.*)\n\s*<!--\s+END $handle\s+-->/sm";
        preg_match_all($reg, $str, $m);
        $str = preg_replace($reg, "{" . "$name}", $str);
        $this->set_var($handle, $m[1][0]);
        $this->set_var($parent, $str);
      }
        function set_var($varname, $value = "") {
        if (!is_array($varname)) {
          if (!empty($varname))
            if ($this->debug) print "scalar: set *$varname* to *$value*<br>\n";
            $this->varkeys[$varname] = "/".$this->varname($varname)."/";
            $this->varvals[$varname] = $value;
        } else {
          reset($varname);
          while(list($k, $v) = each($varname)) {
            if (!empty($k))
              if ($this->debug) print "array: set *$k* to *$v*<br>\n";
              $this->varkeys[$k] = "/".$this->varname($k)."/";
              $this->varvals[$k] = $v;
          }
        }
      }
      function subst($handle) {
        if (!$this->loadfile($handle)) {
          $this->halt("subst: unable to load $handle.");
          return false;
        }    $str = $this->get_var($handle);
        $str = @preg_replace($this->varkeys, $this->varvals, $str);
        return $str;
      }
      
     
      function psubst($handle) {
        print $this->subst($handle);
        
        return false;
      }
      function parse($target, $handle, $append = false) {
        if (!is_array($handle)) {
          $str = $this->subst($handle);
          if ($append) {
            $this->set_var($target, $this->get_var($target) . $str);
          } else {
            $this->set_var($target, $str);
          }
        } else {
          reset($handle);
          while(list($i, $h) = each($handle)) {
            $str = $this->subst($h);
            $this->set_var($target, $str);
          }
        }
        
        return $str;
      }
      
      function pparse($target, $handle, $append = false) {
        print $this->parse($target, $handle, $append);
        return false;
      }
      
     
      function get_vars() {
        reset($this->varkeys);
        while(list($k, $v) = each($this->varkeys)) {
          $result[$k] = $this->varvals[$k];
        }
        
        return $result;
      }
      
     
      function get_var($varname) {
        if (!is_array($varname)) {
          return $this->varvals[$varname];
        } else {
          reset($varname);
          while(list($k, $v) = each($varname)) {
            $result[$k] = $this->varvals[$k];
          }
          
          return $result;
        }
      }
      
     
      function get_undefined($handle) {
        if (!$this->loadfile($handle)) {
          $this->halt("get_undefined: unable to load $handle.");
          return false;
        }
        
        preg_match_all("/\{([^}]+)\}/", $this->get_var($handle), $m);
        $m = $m[1];
        if (!is_array($m))
          return false;    reset($m);
        while(list($k, $v) = each($m)) {
          if (!isset($this->varkeys[$v]))
            $result[$v] = $v;
        }
        
        if (count($result))
          return $result;
        else
          return false;
      } 
      function finish($str) {
        switch ($this->unknowns) {
          case "keep":
          break;
          
          case "remove":
            $str = preg_replace('/{[^ \t\r\n}]+}/', "", $str);
          break;      case "comment":
            $str = preg_replace('/{([^ \t\r\n}]+)}/', "<!-- Template $handle: Variable \\1 undefined -->", $str);
          break;
        }
        
        return $str;
      }
      function p($varname) {
        print $this->finish($this->get_var($varname));
      }  function get($varname) {
        return $this->finish($this->get_var($varname));
      }
          function filename($filename) {
        if (substr($filename, 0, 1) != "/") {
          $filename = $this->root."/".$filename;
        }
        
        if (!file_exists($filename))
          $this->halt("filename: file $filename does not exist.");    return $filename;
      }
      
     
      function varname($varname) {
        return preg_quote("{".$varname."}");
      } 
      function loadfile($handle) {
        if (isset($this->varkeys[$handle]) and !empty($this->varvals[$handle]))
          return true;    if (!isset($this->file[$handle])) {
          $this->halt("loadfile: $handle is not a valid handle.");
          return false;
        }
        $filename = $this->file[$handle];    $str = implode("", @file($filename));
        if (empty($str)) {
          $this->halt("loadfile: While loading $handle, $filename does not exist or is empty.");
          return false;
        }    $this->set_var($handle, $str);
        
        return true;
      } 
      function halt($msg) {
        $this->last_error = $msg;
        
        if ($this->halt_on_error != "no")
          $this->haltmsg($msg);
        
        if ($this->halt_on_error == "yes")
          die("<b>Halted.</b>");
        
        return false;
      }
      
     
      function haltmsg($msg) {
        printf("<b>Template Error:</b> %s<br>\n", $msg);
      }
    }
    ?>----------------------------------------
      

  4.   

    还有这个 hahawen(变态的大龄青年) 
    -------------------------
    这个问题都问?????????????????????????function aa(){
       echo "pig";
    }aa();
    ----------------------我看你是个pig还差不多。
    也不知道自己几斤几两,不就是一个星吗?
    是不懂装懂还是怎么着?
      

  5.   

    模板:{function_define}
    PHP:$function_define_str=<<<EOT
    <SCRIPT Language="JavaScript">
    <!--//
    function mess(){
      alert('CSDN 是大家学习的地方,不是吵架的地方');
    }
    mess();
    //-->
    </SCRIPT>
    EOT;
    ......
    $t->set_var("function_define",$function_define_str);
      

  6.   

    在这里向 fivetwogtt(快乐睫毛) 道歉,
    坚决不理预 hahawen(变态的大龄青年)
    最后在说一句:
    我不相信权威!
    权威也有说狗屁的时候。
      

  7.   

    mrshelly(Shelly)
    你说的好像不对哎!
    我要把比如这个函数替换,该怎么办?
    ------------------------
    <?php
    function province($n,$target,$path){
    $i=1;
    $j=1;
    ?>
    <link href="../css/1.css" rel="stylesheet" type="text/css">
    <script>
    function chcolor(obj,color1,color2,border){
    eval(obj).style.backgroundColor=color1;
    //eval(obj).style.border=border+"px solid #000000"
    eval(obj).style.cursor="hand";
    eval(obj).style.color=color2;
    //eval(obj).style.class="underline";
    //alert(obj.style.bgColor);
    }
    </script>
    <table width="100%"  border="0" cellpadding="2" cellspacing="2">
    <?php
    $query="select province,num from province order by levelofthis";
    $result=mssql_query($query);
    while($rows=mssql_fetch_array($result)){
    ?>
    <?php
    //控制换行<tr>
    if($i==1){
    ?>
    <tr>
    <?php
    }
    ?>

    <td height="20" align="center" class="bodyfont" id="cell<?php echo $j; ?>" onmousemove="chcolor(this,'','#ff0000',1)" onmouseout="chcolor(this,'','',0)" name="cell<?php echo $j; ?>" onclick="<?php echo $target; ?>location.href='<?php echo $path; ?>?provinceid=<?php echo $rows[1]; ?>&provincename=<?php echo $rows['province']; ?>'"><?php echo $rows['province']; ?></td>


    <?php
    if($i!=$n){
    ?>
    <td width=2 class="bodyfont">|</td>
        <?php
    }
    ?>

    <?php
    //控制换行</tr>
    if($i==$n){
    ?>
    </tr>
    <?php
    }
    ?>

    <?php
    $i++;
    $j++;
    if($i>$n) $i=1;
    }
    ?>
    </table>
    <?php
    }
      

  8.   

    呵呵,别吵了。我自己把问题解决了。帮帮你。
    关键在于使用smarty或phplib模板时改变html静态变量的时候加入html支持php的html语句.
    例如:
    $smarty->assign('include_file','<iframe scrolling=auto height=650 width=650 frameborder=0 marginHeight=0 marginWidth=0 src=reply.php></iframe>');
    那么楼主的问题只要把哪个函数写成一个文件(php)的,接着在这里被调用就ok了。
    不明白就发信息给我吧。
      

  9.   

    哈哈哈!
    权威就是狗屁一个!~
    我只用了一个简单的函数,就把问题解决了!
    ob_get_clean()
    请看自函数原型:
    ------------------------
    <?php
    function menu($color1="",$color2=""){
    $domain="http://www.duojiao.com.cn/";
    ?>
    <table border="0" cellpadding="0" style="border-collapse: collapse" width="578" id="table43" height="50">
      <tr>
        <td width="578" style="text-align: center; vertical-align: middle" bgcolor="<?php echo $color1; ?>"> <font color="#FFFFFF"><span style="letter-spacing: 2px"> <a href="<?php echo $domain; ?>"><font color="white">首&nbsp; 页</font></a></span><span style="letter-spacing: 0px"> ┃ </span><span style="letter-spacing: 2px"><a href="<?php echo $domain; ?>thjs.php"><font color="white">图画江山</font></a></span><span style="letter-spacing: 0px"> ┃ </span><span style="letter-spacing: 2px"><a href="<?php echo $domain; ?>sight.php"><font color="white">行游天下</font></a></span><span style="letter-spacing: 0px"> ┃ </span><span style="letter-spacing: 2px"><font color="white">休闲假日</font></span><span style="letter-spacing: 0px"> ┃ </span><span style="letter-spacing: 2px"><font color="white">出行常识</font></span><span style="letter-spacing: 0px"> ┃ </span><span style="letter-spacing: 2px"><font color="white">视频导游</font></span><span style="letter-spacing: 0px"> ┃ <font color="white">精选线路</font></span></font></td>
      </tr>
      <tr>
        <td width="578" bgcolor="<?php echo $color2; ?>" style="text-align: center; vertical-align: middle; border-width: 1px"> <span style="letter-spacing: 2px; color: #FFFFFF;"> <a href="<?php echo $domain; ?>travel.php"><font color="white">旅行社</font></a></span><span style="letter-spacing: 0px; color: #FFFFFF;"> ┃ </span> <span style="letter-spacing: 2px; color: #FFFFFF;"><a href="<?php echo $domain; ?>grogshop.php"><font color="white">酒店宾馆</font></a></span><span style="letter-spacing: 0px; color: #FFFFFF;"> ┃ </span><span style="letter-spacing: 2px; color: #FFFFFF;"><a href="<?php echo $domain; ?>ticket/"><font color="white">预订票务</font></a></span><span style="letter-spacing: 0px; color: #FFFFFF;"> ┃ </span><span style="letter-spacing: 2px; color: #FFFFFF;"><a href="<?php echo $domain; ?>info/index.htm" target="_blank"></font><font color="white">多娇网络</font></a></span><span style="letter-spacing: 0px; color: #FFFFFF;"> ┃&nbsp; </span><span style="letter-spacing: 2px; color: #FFFFFF;"><a href="http://voip.duojiao.com.cn"><font color=white>I P 业务</font></a></span><span style="letter-spacing: 0px; color: #FFFFFF;"> ┃ <a href="http://shop.duojiao.com.cn"><font color="white">旅游商城</font></a> ┃ <a href="http://bbs.duojiao.com.cn"><font color="white">旅游论坛</font></a></span></td>
      </tr>
    </table>
    <?php
    return ob_get_clean();//它的作用是得到函数执行后的内容,但不显示出来!就这样简单,
    //看不起我?有本事就把正确公布出来啊!
    }
    ?>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
      

  10.   

    看了这么久,还是没有看到解决方案。。
    我正好也做这个功能。。昨天晚上想了好久,早上起来就把功能实现了。说一下我的实现思路吧。模板文件的处理完成后不要输入,把值写入一个$html变量中,然后用正则查找模板变量如[getnews]1,10,30[/getnews],找到此字符串,然后代入function getnews()处理,处理后返回一个结果,再用返回的结果替换[getnews]1,10,30[/getnews],用while循环一下,就OK了。如果有多个模板变量,就要多个函数支持。不知道看明白了么??