この記事では主に PHP Smarty の区切り文字の競合に対処する方法を紹介します。興味のある方はぜひ参考にしてください。
デフォルトの区切り文字「{」がCSSやJSの「{」と競合します。どう対処すればよいですか?
1. { で始まるスペースはすべて空白のままにしてください。 (Smarty は区切り文字内のコンテンツのみを解析します。左側の区切り文字の後にスペースがあってはなりません)
2. CSS と JS を外部から導入します。 (Smarty は外部ファイルを解析しません)
3. 組み込み関数リテラルを使用します。
4. 区切り文字を変更します。
競合を解決する最良の方法: CSS と JS を外部に導入し、内部のものにはリテラルを使用します。
index.php (バックエンド):
<?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 (フロントエンドビュー):
<!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>
関連推奨事項:
以上がPHP Smarty での区切り文字の競合に対処する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。