解决smarty标签的定界符{}与css的{}冲突问题

来源:互联网 发布:屏幕录像 知乎 编辑:程序博客网 时间:2024/06/05 23:06
使用smarty时,当运行该php页面时报如下错误:
Fatal error: Uncaught exception'SmartyCompilerException' with message 'Syntax Error in template".\temp\gy.html" on line 10 "table{background:blue;}" - Unexpected":", expected one of: "}" , " " , ATTR' inD:\wamp\www\smarty3\libs\sysplugins\smarty_internal_templatecompilerbase.phpon line 665
这往往是smarty的定界符和css/js的{}导致的
下面有如下两种方法可以解决,有兴趣的朋友可以参考参考,如有其他更好方法也请指教指教!!!
解决:
1:修改smarty默认定界符,如改成{> ,<}
 对应的php页面需要配置smarty的左右定界符:
    $smarty->left_delimiter = '{>';
    $smarty->right_delimiter = '<}';

  html页面需要做如下修改,如:

   <h1>{>$title<}</h1>   <p>{>$content<}</p>

2:可以用{literal}{/literal}标签,来告诉smarty,此处照常输出,不用解析
  此时,css和js只需加上
{literal}{/literal}就行,其他不用修改,如:
  {literal}div{background:blue;}{/literal}
<pre name="code" class="html">  <div>     <h1>{$title}</h1>     <p>{$content}</p>  <div>



这样页面就可以正常显示了!!!
1 0
原创粉丝点击