ここにシナリオがあります。SmartyとPHP変数の操作
私はこのようになりますDB内のテキストを持っている:あなたは、2つのSmarty変数{$name}
と{$index}
が含まれて見ることができるとして今、私はSmartyの持つ変数に値を割り当てる必要が
blah blah blah blah blah {$name} {$index}
。 Smartyのを知らない人のために、値が簡単にこの方法を割り当てることができます。
$smarty->assign('name_of_the_variable', $variable);
問題は、このテキストはDBから来ている、と私はテキストになりますどの変数かわからないので、私ということです
blah blah blah blah blah $name $index
代わりの
:問題は、最終的なコンテンツがどのように見えるということですfunction getPageContent($page) {
$smarty = new Smarty(); // initializing Smarty
//selecting the content and saving it into the $content variable
$q='SELECT * FROM pages_blocks WHERE Page="'.$page.'"';
$r=mysql_query($q) or die(mysql_error());
while($row = mysql_fetch_array($r)) {
$content = $row['Content'];
}
//defining variables
$name = "NAME";
$index = "INDEX";
//getting all the variables inside brackets {}
preg_match_all('/{(.+)}/U', $content, $matches);
//abstracting the code assigning values to the variables found
foreach ($matches[1] as $match) {
$foo = str_replace('$', '', $match); //removing the $ to give a name to smarty
$smarty->assign(''.$foo.'', $match); //final assignation of name and its variable
}
$smarty->display('string:'.$content); //displaying the final content
}
:次の操作を行って抽象コードにしようとしています
blah blah blah blah blah NAME INDEX
何かが間違っています。 Smartyは、以前のように実行する代わりに、変数をそのまま印刷します。
私を助けてください。
を私は($マッチ)evalにも試みたが、まったく運を持ちます。 –
スマートに使用しないでください。 PHPはすでに強力なテンプレートエンジンです – dynamic
良い助言。しかし、それは現時点で私を助けてくれていません。私はちょうどあなたがyes123何らかの特定の理由@ \\ –