V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kisshere
V2EX  ›  程序员

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

  •  
  •   kisshere · 2015-01-31 11:08:36 +08:00 · 2900 次点击
    这是一个创建于 3586 天前的主题,其中的信息可能已经有所发展或是发生改变。

    服务器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服务器就这样了,哎,急人得很

    8 条回复    2015-01-31 17:42:23 +08:00
    ferock
        1
    ferock  
       2015-01-31 11:13:35 +08:00 via Android
    这样的写法,醉了,tp 坑太多
    kisshere
        2
    kisshere  
    OP
       2015-01-31 11:14:40 +08:00
    @ferock 我只是举个例子,thinksns会去除<?php }else{ ?>里面的空格,导致语法错误
    Felldeadbird
        3
    Felldeadbird  
       2015-01-31 11:22:02 +08:00
    按照楼主的情况,只能找一下tpsns下的模板编译类,看看到底什么问题。这个问题估计没多少人能帮你了。
    yrdr
        4
    yrdr  
       2015-01-31 11:25:17 +08:00
    亲,你可以不写php的,直接<?if(){?>就可,要输出就<?=$result?>,多么方便啊
    zts1993
        6
    zts1993  
       2015-01-31 14:47:56 +08:00
    这个应该不是去除空格引起的。
    去除空格是ThinkPHP的压缩功能~
    msg7086
        7
    msg7086  
       2015-01-31 17:08:14 +08:00
    模板用冒号吧,大括号太那啥了……
    kisshere
        8
    kisshere  
    OP
       2015-01-31 17:42:23 +08:00
    @msg7086 额。。。这是thinksns官方的写法啊,不是我这么写的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5537 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 09:29 · PVG 17:29 · LAX 01:29 · JFK 04:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.