可能性の重複:
Fastest way to replace string in PHPHTML内のカスタム変数を作成する方法
私は私の好きな私のhtmlタグの内側に作られたカスタム変数を管理しようとしていた。
<title>{myTitle}</title>
を
今、PHPを使用してこれらのカスタム変数 "{...}"を置き換えることはできますか? 私はテンプレートエンジンのほとんどがそれを行うことができることを見た。
何かアドバイスが理解されるであろう:)
可能性の重複:
Fastest way to replace string in PHPHTML内のカスタム変数を作成する方法
私は私の好きな私のhtmlタグの内側に作られたカスタム変数を管理しようとしていた。
<title>{myTitle}</title>
を
今、PHPを使用してこれらのカスタム変数 "{...}"を置き換えることはできますか? 私はテンプレートエンジンのほとんどがそれを行うことができることを見た。
何かアドバイスが理解されるであろう:)
これはテンプレートエンジンの非常に単純なバージョンです。明らかに、あなたはより多くの機能を持つクラスにそれを配置する必要があります:)
表示ページが
<?php
define(TEMPLATES_LOCATION, 'templates/');
function TemplateFunction ($template, $replaces) {
$template = file_get_contents(TEMPLATES_LOCATION . $template);
if (is_array($replaces)) {
foreach($replaces as $replacekey => $replacevalue){
$template = str_replace('{$' . $replacekey . '}', $replacevalue, $template);
}
}
return $template;
}
$keys = array(
'TITLE' => 'This is page title',
'HEADER' => 'This is some header'
);
echo TemplateFunction('body.tpl', $keys);
?>
(テンプレート/ body.tplに位置)テンプレートファイル
<html>
<head>
<title>{$TITLE}</title>
</head>
<body>
<h1>{$HEADER}</h1>
</body>
</html>
を(EDIT)シングルファイルバージョン
<?php
define(TEMPLATES_LOCATION, '');
function TemplateFunction ($template, $replaces) {
// $template = file_get_contents(TEMPLATES_LOCATION . $template);
if (is_array($replaces)) {
foreach($replaces as $replacekey => $replacevalue){
$template = str_replace('{$' . $replacekey . '}', $replacevalue, $template);
}
}
return $template;
}
$keys = array(
'TITLE' => 'This is page title',
'HEADER' => 'This is some header'
);
$template = '<html>
<head>
<title>{$TITLE}</title>
</head>
<body>
<h1>{$HEADER}</h1>
</body>
</html>';
echo TemplateFunction($template, $keys);
?>
Kalleさん、ありがとうございます。でも、HTMLとPHPのコードが同じページになるようにしたいのですが? –
問題ありません。これはどうですか?これを少し操作することはできますが、技術的には、TemplateFunctionを後で呼び出さなければなりません。他のものは全て把握され、設定されます。 –
PHPはすでに基本的なテンプレート環境です。また、Smartyなどのツールを使用してより多くの機能を利用することもできます。
<title><?= $myTitle ?></title>
ありがとう:)ことを学びたい、ただ好奇心が強いです私のPHPコードとHTMLを1ページにしたいのであれば、どうやって変数を置き換える前に表示されないようにすることができますか? –
$arr = new array();
$arr["test"] = "hello";
$arr["foo"] = "world"
foreach ($arr as $key => $value) {
$yourTemplateAsString = str_replace("{".$key."}", $value, $yourTemplateAsString);
}
シンプルなソリューション...あなたが正規表現でいくつかの派手なものを行うと、このようにするforeachとかを追加することができます。しかし、PHP自体には、単に標準の変数を含めることができます。
うん、私は上記のサンプル知っているPHPを使用せずに、HTML内でそれをしたい、それは私がそのようにやって何年だ、私は –
テンプレートエンジンを使用してみませんか? – Tomalak
Smartyアーキテクチャを研究します。あなたはそこにあなたの答えを得るでしょう。 –
*(参考)* [文字列関数](http://php.net/manual/en/ref.strings.php) – Gordon