未分类

smarty提示“syntax error: unrecognized tag”错误的解决方法

smarty中使用{}作为定界符,如果模板中包含了其他的{}就会造成解析错误,实际上这种情况很常见,比如模板中有内联js,写了点小函数之类的。

解决的方法有3种,只推荐最方便的那种:在包含错误标记的代码外加上{literal}{/literal}标签,因为smarty报错的时候会提示行号,所以很容易找到出错位置。下面是例子,在smarty中使用打了bsie补丁的bootstrap报错的解决方法:

{literal}
<script type=”text/javascript”>
(function($){
$(document).ready(function() {
if ($.isFunction($.bootstrapIE6)) $.bootstrapIE6($(document));
});
})(jQuery);
</script>
{/literal}

其他的解决方法如果有兴趣请自行参考文档:

传送门1 传送门2

PHP调试时获取函数定义所在文件

PHP函数名是大小写不敏感的,有些写的不规范的程序在查找函数出处时就会有麻烦。

如果用grep来找,一定要加-i参数以便忽略大小写。

另外还有一种方法,将这条语句加入执行的php中:

Reflection::export(new ReflectionFunction(‘函数名称’));

这样页面就会输出函数定义所在的文件了。

Function [ function 函数名称 ] { @@ /home/wwwroot/test/include/global.fun.php 285 - 294 }