首页  >  文章  >  后端开发  >  PHP有关问题请大神帮忙

PHP有关问题请大神帮忙

WBOY
WBOY原创
2016-06-13 12:09:09828浏览

PHP问题【急】【急】【急】【急】请大神帮忙

本帖最后由 sysmaze 于 2014-11-02 15:47:57 编辑 模板赋值问题
最终页代码如下
<br /><?php <br />    require "system/system.php"; <br />    $tpl =  new KSeeing();<br />    $tpl->assign("show",'success');<br />    $show = '111';<br />    include('templates/index.html');  =======================这样写的话 $show能成功赋值<br />    //include('F:/AppServ/www/temp/tpl/com_index.html.php'); <br />    //$tpl->compile('index.html');===================这样写的话$show不能赋值<br />?><br />

index.html 简要代码如下 输出一个变量
<br />	<div class="logo"><?php  echo $show ?></div><br />


问题如下:
                直接在本页面下include(上面第一个代码块)   include('templates/index.html');  成功赋值可以输出$show值
                简单写了个模板 核心函数 $tpl->compile('index.html'); 如下  就不能成功赋值 相对绝对路径都试过,【以下代码compile已改为绝对】,而且两个引用的路径一模一样[非绝对下]竟然不好使!!!不知道是不是涉及到GLOBAL这个东西,请大神详解 ,在线等!

<br />function compile($fileName){<br />            $ducument_root = $_SERVER['DOCUMENT_ROOT'];<br />            $tplFile = $ducument_root.$this->template_dir.$fileName; //找到模版文件<br />            if(!file_exists($tplFile)){<br />                return false;<br />            }<br />            $comFile = $ducument_root.$this->compile_dir.'com_'.basename($tplFile).'.php';//构造编译后的文件<br />            if(!file_exists($comFile) || filemtime($comFile)<filemtime($tplFile)){<br />                $repContent  = $this->tpl_replace(file_get_contents($tplFile));//获取源文件内容并替换成php源格式<br />                $handle = fopen($comFile,'w+');<br />                fwrite($handle,$repContent);<br />                fclose($handle);<br />            }<br />            include($comFile);<br />        }<br />



------解决思路----------------------
你的 KSeeing::assign 方法是怎么写的?

一般的说
$tpl->assign("show",'success'); 
是将 'success' 赋予 $tpl 的 show 属性,通常会有一个载体
所以可能是这样 $tpl->data['show'] = 'success';

你的模板中是 
所以 compile 方法中应是
extract($this->data);<br />include($comFile);
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn