PHP の問題 [緊急] [緊急] [緊急] [緊急] 助けてください
この投稿は 2014-11-02 15:47:57 に sysmaze によって最終的に編集されました テンプレートの割り当ての問題
最後にページのコードは次のとおりです
<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 ('templates/index.html'); 割り当てが成功すると $show value
が出力される私は相対パスと絶対パスを試しました。[次のコードのコンパイルは絶対パスに変更されました]、参照される 2 つのパスはまったく同じです【絶対ではない】けど効果がない! ! ! 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');
は $tpl の show 属性に 'success' を割り当てることです。通常はキャリアが存在します。
つまり、次のようになります $tpl->data['show'] = 'success';
テンプレートは
つまりコンパイルはメソッドは Yes
extract($this->data);<br />include($comFile);
ログイン後にコピー
にする必要があります