很多cms程序出于安全的考虑都会禁用php语句写在模板中,这也不仅仅是出于安全因素的考虑,一部分也是为了程序加载速度原因,ECshop默认的模板文件同样也不支持php语句。和大家说一下解决办法。
打开includes目录下的cls_template.php文件,查找约293行function fetch_str($source)函数方法,找到如下代码:
1
|
$source = str_replace($sp_match[1][$curr_sp],'%%%SMARTYSP'.$curr_sp.'%%%',$source); |
把这段代码注释掉就可以了。第二种办法,是注释掉以下代码,
1
2
3
4
5
6
7
8
9
10
11
12
|
if(preg_match_all('~(|language\s*=\s*[\"\']?php[\"\']?)~is', $source, $sp_match)) { $sp_match[1] = array_unique($sp_match[1]); for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++) { $source = str_replace($sp_match[1][$curr_sp],'%%%SMARTYSP'.$curr_sp.'%%%',$source); } for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++) { $source= str_replace('%%%SMARTYSP'.$curr_sp.'%%%', ''."\n", $source); } } |
以上两种方法就是让ecshop仿站的时候让模板支持php语句的办法。