为什么 thinksns 生成模板缓存会去除<?php 后面的空格?

2015-01-31 11:08:36 +08:00
 kisshere

服务器centos,thinksns基于thinkPHP,thinksns每次都会在_runtime/tplcache下面生成模板缓存,但是每次生成缓存都要出错,它会把<?php后面空格去掉,比如在account.html中是这样:
<div>
用户你好,当前你的状态为:
<?php if($is_loggin){ ?>
已经登录
<?php }else{ ?>//模板里这里<?php后面有空格
还未登录
<?php } ?>
</div>
thinksns生成对应的模板缓存:
<div>
用户你好,当前你的状态为:
<?php if($is_loggin){ ?>
已经登录
<?php}else{ ?>//这里thinksns就把<?php后面的空格吃掉了,导致出错
还未登录
<?php } ?>
</div>
求亲爱的V神们帮助,我在本地windows测试从未出现过这种问题啊,上传至centos服务器就这样了,哎,急人得很

2809 次点击
所在节点    程序员
8 条回复
ferock
2015-01-31 11:13:35 +08:00
这样的写法,醉了,tp 坑太多
kisshere
2015-01-31 11:14:40 +08:00
@ferock 我只是举个例子,thinksns会去除<?php }else{ ?>里面的空格,导致语法错误
Felldeadbird
2015-01-31 11:22:02 +08:00
按照楼主的情况,只能找一下tpsns下的模板编译类,看看到底什么问题。这个问题估计没多少人能帮你了。
yrdr
2015-01-31 11:25:17 +08:00
亲,你可以不写php的,直接<?if(){?>就可,要输出就<?=$result?>,多么方便啊
Doubear
2015-01-31 11:58:47 +08:00
TP不是有模版引擎嘛?你用模版语法就不会有这些问题啊
zts1993
2015-01-31 14:47:56 +08:00
这个应该不是去除空格引起的。
去除空格是ThinkPHP的压缩功能~
msg7086
2015-01-31 17:08:14 +08:00
模板用冒号吧,大括号太那啥了……
kisshere
2015-01-31 17:42:23 +08:00
@msg7086 额。。。这是thinksns官方的写法啊,不是我这么写的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/166983

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX