我知道許多人建議你添加模板引擎,但如果你想在你的情況來創建自己的,最簡單的方法是使用str_replace函數:
$index = file_get_contents ("index.bel");
$replace_from = array ('$variable_a', '$variable_b');
$replace_to = array ($var_a_value, $var_b_value);
$index = str_replace($replace_from,$replace_to,$index);
現在是簡單的變量替換,但你很快就會想要更多的標籤,更多的功能,並且有一種方法可以使用preg_replace_callback
。你可能想看看它,因爲它最終實現,以取代變量,包括其他文件{include:file.bel}
,替換文本像{img:foo.png}
。
編輯:閱讀更多您的評論,您正在創建自己的框架。看看preg_replace_callback
,因爲它給你更多的方式來處理事情。
很簡單,這裏例如:
...
$index = preg_replace_callback ('/{([^}]+)}>/i', 'preg_callback', $index);
...
function preg_callback($matches) {
var_dump($matches);
$s = preg_split("/:/",$matches[1]); // string matched split by :
$f = 'func_'.strtolower($s[0]); // all functions are like func_img,func_include, ...
$ret = $f($s); // call function with all split parameters
return $ret;
}
function func_img($s) {
return '<img src="'.$s[1].'" />';
}
從這裏也可以改善這一點(很多方法),例如將所有功能的類,如果你想。
這有什麼錯一些正則表達式來查找和'str_replace' ... –
的模板引擎類將是更好的包括。 SMARTY例如(我覺得SMARTY未來通過仇恨)至少一個模板引擎支持自己的框架;它恭維它。 – TheBlackBenzKid
使用模板引擎。 – Sarfraz