泣く準備ができました。私はphp.netのマニュアルページを読み、さまざまなフレーズで12回のGoogle検索を試し、何百ものstackoverflowスレッドをスキャンしました。この方法が使用されているのを見たことがありますが、うまくいきません。それはとても基本的なようです。答えを見つける方法がわからない、いくつかの関連する質問や問題があります。
PHPファイルの重要な部分は次のようになります。
switch() {
…other cases…
default:
$tpl['title'] = "Newsletter Signup";
$tpl['description'] = "Newsletter description";
$tpl['page-content'] = file_get_contents('signup.html');
}
$tpl_src = addslashes(file_get_contents('index.tpl'));
eval("\$html = \"$tpl_src\";");
echo $html;
私のindex.tplファイルには、次のような行が含まれています。
<title>{$tpl['title']}</title>
<meta name="description" content="{$tpl['description']}" />
nav, etc…<br>
<div id="main-content"> {$tpl['page-content']} </div>
余分なものをたくさん使わずに、コードがいかにすっきりときれいであるかが好き<?=…?>
です。
まず、中括弧{}が文字列に表示される場合、それは何と呼ばれますか?知っていれば調べて使い方を学べるかもしれません。
次に、これはまったく機能しません。変数キーから一重引用符を削除するのは良いことですが、php.netは、ある時点で私の名前が言語定数になった場合に備えて、絶対に削除しないように指示しています。けっこうだ。しかし、どうすればこれを修正できますか?evalTemplateサブルーチンを作成し、それに$ tplを渡すことができる場合に備えて、varsに配列を使用するのが好きです。
最後に、$tpl['page-content']は出力されません。変数は正常に設定されています。テストに使用できますecho $tpl['page-content']
が、最終的なHTMLでは1行の空白行として表示されます。
私がまだ知らない言語のいくつかの側面があると確信しています。どんな助けでも大歓迎です!!