请选择 进入手机版 | 继续访问电脑版

SpeedPHP框架

 找回密码
 注册成为新用户

QQ登录

只需一步,快速开始

楼主: jake

speed.php问题求助

[复制链接]
发表于 2015-10-18 07:19:47 | 显示全部楼层
jake 发表于 2015-10-18 00:27
首先,很欢迎,从另一帖子可以看到你的能力,所以肯定是欢迎的

不过,目前的基础教程方面我的想法是尽量 ...

谢谢,期待,speedphp 09年开始用,再不贡献下 用之有亏了呵呵。
发表于 2015-10-26 09:18:04 | 显示全部楼层
凡是通过$this->xxx指定的模板变量,在进行调用的时候都会过滤掉html代码。看了下缓存,框架貌似在每个变量都会自动加这个echo htmlspecialchars   的函数。
有些变量不需要转义,比如友情链接、自定义底部信息(会包含hr  br   p  等标签),有什么办法可以解决这个问题么?@jake
 楼主| 发表于 2015-10-26 09:47:26 | 显示全部楼层
passionxlife 发表于 2015-10-26 09:18
凡是通过$this->xxx指定的模板变量,在进行调用的时候都会过滤掉html代码。看了下缓存,框架貌似在每个变量 ...

这是默认的安全策略:防止XSS攻击,所以会自动进行过滤。
如果变量不需要过滤,可以在后面加入nofilter标记,比如说 <{$myhtml nofilter}>这样就不会被转码了。


发表于 2015-10-28 16:30:06 | 显示全部楼层
希望J大加入在修改模板后自动编译的功能,现在每次修改模板后都要去手动删缓存。
 楼主| 发表于 2015-10-28 17:22:45 | 显示全部楼层
xzp44 发表于 2015-10-28 16:30
希望J大加入在修改模板后自动编译的功能,现在每次修改模板后都要去手动删缓存。 ...

请问一下是旧版还是新版,不过新旧版都没有这样的问题,除非旧版情况下开启了模板缓存。

1. 新版是自动判断模板文件修改时间,如果有更新就会重新编译。具体代码在:https://github.com/SpeedPHP/spee ... /lib/speed.php#L386
流程是先根据模板的filemtime(修改时间),来拼装新的编译文件的地址,然后删除原模板的编译文件,最后按新地址生成新的编译问题。

PS:filemtime在win和*nix上面都运作正常http://cn.php.net/manual/zh/function.filemtime.php,stats的缓存也是在同一次php执行中发现——但是修改文件并不是php执行行为,所以stats不会缓存。http://cn.php.net/manual/zh/function.clearstatcache.php

2. 开启APC的OPCODE缓存情况下,会需要清理OPCODE才能更新内容,但是不涉及模板,模板生成还是按修改时间。

3. 旧版的默认情况下不开缓存的,默认编译的话,也是用类似监控filemtime的方式,所以也没有这样的情况。


唯一会发生修改模板后,不马上生效的情况,只有旧版用的smarty,在开启了caching选项后,会产生这样的情况。

对于caching的说明在这里:http://www.speedphp.com/smarty/variable.caching.html

综上,新版没有用到smarty,所以可能楼上说的是旧版的情况。旧版可以关闭caching就不会有这样的问题了。


发表于 2015-10-29 10:50:57 | 显示全部楼层
jake 发表于 2015-10-28 17:22
请问一下是旧版还是新版,不过新旧版都没有这样的问题,除非旧版情况下开启了模板缓存。

1. 新版是自动 ...

我指的是新版,我再去研究一下。谢谢回复。
发表于 2015-11-11 16:36:01 | 显示全部楼层
使用set_error_handler()后,error_reporting ()将会失效。也就是所有的错误(除上述的错误)都会交给自定义的函数处理。 是不是error_reporting这个就不需要了吧 http://www.jb51.net/article/43089.htm
 楼主| 发表于 2015-11-12 08:09:21 | 显示全部楼层
sp_lin 发表于 2015-11-11 16:36
使用set_error_handler()后,error_reporting ()将会失效。也就是所有的错误(除上述的错误)都会交给自定 ...

也不算是失效,error_reporting指的是页面输出错误级别,如果用了set_error_handler,那么错误就不一定是页面输出了。所以也就不属于error_reporting可以控制的范围。

http://cn.php.net/manual/zh/function.set-error-handler.php
发表于 2015-11-12 08:49:41 | 显示全部楼层
jake 发表于 2015-11-12 08:09
也不算是失效,error_reporting指的是页面输出错误级别,如果用了set_error_handler,那么错误就不一定是 ...

恩 是的

发表于 2015-11-16 14:14:44 | 显示全部楼层
新版如何分页????
您需要登录后才可以回帖 登录 | 注册成为新用户

本版积分规则

手机浏览|简版|中文PHP框架|开源协议|SpeedPHP.com ( 粤ICP备08008671号

GMT+8, 2020-2-26 14:28

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表