Cet article présente principalement comment gérer les conflits de délimiteurs dans PHP Smarty. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Le délimiteur par défaut "{" est en conflit avec "{" en css et js. Comment y remédier ?
1. Tous les espaces commençant par { doivent être laissés vides. (Smarty analysera uniquement le contenu à l'intérieur du délimiteur, et il ne doit y avoir aucun espace après le délimiteur de gauche)
2. Importez CSS et js en externe. (Smarty n'analysera pas les fichiers externes)
3. Utilisez la fonction littérale intégrée.
4. Changez le délimiteur.
La meilleure façon de résoudre les conflits : introduisez CSS et JS en externe et utilisez des littéraux pour les conflits internes.
index.php (backend) :
<?php //1.引入smarty类 include 'libs/Smarty.class.php'; //2.实例化smarty对象 $smarty = new Smarty(); //3.设置相关属性 $smarty->template_dir = "templates/"; //模板目录 $smarty->compile_dir = "templates_c"; //编译目录 //修改定界符 $smarty->left_delimiter = '<{'; //自定义定界符,默认是"{" $smarty->right_delimiter = '}>'; //4.分配数据 $smarty->assign('title','smarty模板引擎'); $smarty->assign('content','smarty模板引擎 是一个强大的模板引擎!'); //5.载入视图 $smarty->display('index.html');
index.html (vue frontale) :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{$title}</title> <style> <{literal}> <{* 通过literal函数解决定界符"{"在CSS和JS中的冲突。Smarty会自动解析定界符内的内容(不会解析引入的外部文件)。也可以通过自定义定界符解决冲突。 *}> h1{color:tomato; font-size:40px;} p{color: #00f;} <{/literal}> </style> </head> <body> <h1><{$title}> $title</h1> <{* 只有定界符内的内容才会被Smarty解析,且左定界符后不能有空格 *}> <p><{$content}></p> <p><?php echo $title;?></p> <{* 不会解析PHP代码 *}> <{* 这是注释 *}> </body> </html>
Recommandations associées :
Explication du délimiteur PHP EOF
Comment utiliser le délimiteur PHP eof
php Technique détaillée explication du délimiteur heredoc
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!