2016-04-22 22 views
0

からPHPコードを実行します。私はPHPで次のコード持っているテンプレート

if ($maintenance_mode == true) 
{ 
    $file = 'maintenance-header.php'; 
    $template = file_get_contents($t_includes_path . $file); 
} 
else 
{ 
    $file = 'main-header.php'; 
    $template = file_get_contents($t_includes_path . $file); 
} 

require_once($s_system_path . 'templater.php'); 

をそしてtemplater.phpに:

$page = str_replace(array(
    '{slang}', 
    '{site_title}', 
    '{site_desc}', 
    '{keywords}', 
    '{t_assets_path}', 
    '{s_assets_path}', 
    '{i_assets_path}', 
    ), array(
    $slang, 
    $site_title, 
    $site_content, 
    $keywords, 
    $t_assets_path, 
    $s_assets_path, 
    $i_assets_path, 
    ), 
    $template); 
echo $page; 

問題は、私は、テンプレートファイル内phpコードを使用しようとするということですそれ自体は認識されず、コメント/プレーンテキストとして解析されます。例:

if (htmlentities($_GET['lang'], ENT_QUOTES) == 'en') 
{ 
    echo 'English'; 
} 
else if (htmlentities($_GET['lang'], ENT_QUOTES) == 'ru') 
{ 
    echo 'Russian'; 
} 
else 
{ 
    echo 'Other'; 
} 

これに対処するには?私は実際に<?php echo $site_title; ?>などの代わりに{site_title}を使用したいと思います。できるだけきれいなコードを作成したいと思います。

答えて

0

あなたのPHPコードをexectueする必要があります。ただ「エコー」すると、文字列の中にあるコードは実行されず、ページに印刷されます。ドキュメント上で述べたように、あなたは彼らのコードが...)例えばのeval()関数を使用しますが、ユーザーが(evalにあなたのウェブを強制することはできませんことを確認することができ :

http://php.net/manual/en/function.eval.php

+0

は、他の方法はありません? –

+0

よく、あなたは何とかjs経由で置換を強制することができますが、私はユーザにあなたのPHP変数が表示されるとは思わないと思います – Jimmmy

+0

私は変数を読みやすい代替変数に置き換えるという考えを放棄すべきです...そして、 '<?php echo $ var; ?> ':( –

関連する問題