include() 和require() :语句包括并运行指定文件。 include() 产生一个警告而 require() 则导致一个致命错误。换句话说,如果你想在遇到丢失文件时停止处理页面就用 require()。include() 就不是这样,脚本会继续运行。 require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。 include_once() 语句在脚本执行期间包括并运行指定文件。此行为和 include() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。如同此语句名字暗示的那样,只会包括一次。
Tags: ,

避免回退、重复提交

快乐无极 , 2012/02/24 10:15 , 开发文档 , 评论(0) , 阅读(5612) , Via 本站原创
在开发中,有时候不让用户返回到之前的页面,避免表单重复的提交等。于是就提到了用户缓存过期的问题。在网上搜索的大都是说这样的方法。
在HTML的里面加以下代码
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">

JAVA的:
response.setHeader("Pragma","no-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);

然而,经测试在火狐浏览器里面,设置这些header全然无效果,根本不会提示什么过期。这不知道是不是火狐的设计缺陷还是啥的。火狐的不认缓存设置这一点是很令人费解的。
万般无效之下,只能在不想要用户返回到的页面中加入一行JS脚本:
window.history.forward(1);
以此来解决问题。这个是告诉浏览器回到它返回时的那一页,以此抵消后退的操作。

当然这只是一个不得已的解决方法,严格来说,每个表单的提交都需要增加一个令牌,然后在服务器端要判断令牌的有效性。那才是根本的解决方案。
Tags: ,
freemarker几天前才发布了2.3.17版本,5月21号又发布了2.3.18,距2.3.16已经一年多了。老的编辑器已经不能安装在新版本的eclipse和myeclipse上面了,最新的官方编辑器仍在开发阶段,有网友貌似知道最新的源代码链接位置,不过肯定是不稳定的。
    另一个可选的编辑器就是JBoss Tools 3.2中的FreeMarker编辑器,值得安慰,启动MyEclipse9.0后进入MyEclipse Configuration Center --> Software --> add site,输入Name: freemarker,    
    URL:  http://download.jboss.org/jbosstools/updates/stable/helios/然后在All JBoss Tools 3.2.0下选择FreeMarker IDE,其它的大概你不需要都不用管,也不影响下载时间,然后一路确认安装就OK!
Oracle里面如何识别存储字段里面是否存在中文,方法有二:

1、使用length和lengthb,如果中文的话length是一个字符,但是lengthb是两个字节。但是这个方法不适合数据库字符集非gbk的情况。
select * from t where length(c1) != lengthb(c1);

2、使用asciistr函数得出是否字段里面包含“/”,因为当中文字符转换为ascii后,变成“/FFFD/FFFD”,但是需要注意一个特殊字符“/”,当它出现的时候转换后的码为“/005C”

SQL> select asciistr('//)(-=!@#$%^&*~中文字符') from dual;

ASCIISTR('//)(-=!@#$%^&*~中文字符')
-----------------------------------------------------------
//005C)(-=!@#$%^&*~/FFFD/FFFD/FFFD/FFFD/FFFD/FFFD/FFFD/FFFD
Tags: , , ,
是一个屡获大奖的专业 PHP 集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。

注册破解步骤详见后面的破解补丁包。

点击在新窗口中浏览此图片

下载:http://www.oyksoft.com/soft/22317.html
Tags: , , ,

memcache常量

快乐无极 , 2011/11/14 10:27 , 开发文档 , 评论(0) , 阅读(4666) , Via 本站原创
memcache.allow_failover
    一个布尔值,用于控制当连接出错时 Memcache 扩展是否故障转移到其他服务器上。默认值为 1 (true)。

memcache.max_failover_attempts
    一个整型值,用于限制连接到持久性数据或检索数据的服务器数目。如果 memcache.allow_failover 为 false,则将忽略此参数。默认值为 20。

memcache.chunk_size
    一个整型值,用于控制数据传输的大小。默认值为 8192 字节 (8 KB),但是如果设置为 32768 (32 KB),则可以获得更好的性能。

memcache.default_port
    另一个整型值,用于设置连接到 Memcache 所使用的 TCP 端口。除非您修改它,否则默认值为无特权的高端口 11211。

    memcached最大能存储多大的单个item?
    1MB。如果你的数据大于1MB,可以考虑在客户端压缩或拆分到多个key中。

    为什么单个item的大小被限制在1M byte之内?
    啊…这是一个大家经常问的问题!

    简单的回答:因为内存分配器的算法就是这样的。

    详细的回答:Memcached的内存存储引擎(引擎将来可插拔…),使用slabs来管理内存。内存被分成大小不等的slabs chunks(先分成大小相等的slabs,然后每个slab被分成大小相等chunks,不同slab的chunk大小是不相等的)。chunk的大小 依次从一个最小数开始,按某个因子增长,直到达到最大的可能值。

    如果最小值为400B,最大值是1MB,因子是1.20,各个slab的chunk的大小依次是:slab1 - 400B slab2 - 480B slab3 - 576B …

    slab中chunk越大,它和前面的slab之间的间隙就越大。因此,最大值越大,内存利用率越低。Memcached必须为每个slab预先分配内存,因此如果设置了较小的因子和较大的最大值,会需要更多的内存。

    还有其他原因使得您不要这样向memcached中存取很大的数据…不要尝试把巨大的网页放到mencached中。把这样大的数据结构load和unpack到内存中需要花费很长的时间,从而导致您的网站性能反而不好。

    如果您确实需要存储大于1MB的数据,你可以修改slabs.c:POWER_BLOCK的值,然后重新编译memcached;或者使用低效的malloc/free。其他的建议包括数据库、MogileFS等。
分页: 6/22 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]