In diesem Artikel wird hauptsächlich der Umgang mit Trennzeichenkonflikten in PHP Smarty vorgestellt. Ich hoffe, dass er für alle hilfreich ist.
Das Standardtrennzeichen „{“ steht in Konflikt mit „{“ in CSS und JS. Wie gehe ich damit um?
1. Alle Leerzeichen, die mit { beginnen, sollten leer bleiben. (Smarty analysiert den Inhalt nur innerhalb des Trennzeichens und nach dem linken Trennzeichen dürfen keine Leerzeichen stehen)
2. CSS und JS extern importieren. (Smarty analysiert keine externen Dateien)
3. Verwenden Sie das integrierte Funktionsliteral.
4. Ändern Sie das Trennzeichen.
Der beste Weg, Konflikte zu lösen: Führen Sie CSS und JS extern ein und verwenden Sie Literale für interne.
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 (Frontend-Ansicht):
<!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>
Verwandte Empfehlungen:
Erklärung zum PHP-Trennzeichen EOF
So verwenden Sie das PHP-Trennzeichen eof
php-Trennzeichen hierdoc Technische Details
Das obige ist der detaillierte Inhalt vonWie man mit Trennzeichenkonflikten in PHP Smarty umgeht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!