今天有朋友提到一个问题, 类似如下的字符串(GBK), explode不能得到正确结果:
$result = explode("|", "滕华弢|海青"); //(插一句, 蜗居最近很火啊)
究其原因, 对于"弢"字(读tao,不认识没关系,我也不认识), 因为他的GBK编码值为: 8f7c, 不巧的是, "|"的ASCII值也是7c.
这样的问题, 还有很多...
左手代码右手诗
今天有朋友提到一个问题, 类似如下的字符串(GBK), explode不能得到正确结果:
$result = explode("|", "滕华弢|海青"); //(插一句, 蜗居最近很火啊)
究其原因, 对于"弢"字(读tao,不认识没关系,我也不认识), 因为他的GBK编码值为: 8f7c, 不巧的是, "|"的ASCII值也是7c.
这样的问题, 还有很多...
PATH_INFO是一个CGI 1.1的标准,经常用来做为传参载体.
在Apache中, 当不加配置的时候, 对于PHP脚本, AcceptPathInfo是默认接受的, 也就是说:
如果在服务器在存在一个/laruence/info.php
那么, 对于如下请求, Apache都接受:
/laruence/info.php/dummy /laruence/info.php/pathinfo
而对于Nginx下, 默认Nginx是不支持PATH INFO的, 也就是说, 对于上面的访问, 会是404, 提示找不到文件出错.
with 56 Comments从PHP5.1开始,PHP提供了用户对Zend VM执行分发方式的选择接口.
之前的文章中, 我也提过这方面的内容, Zend虚拟机在执行的时候, 对于编译生成的op_array中的每一条opline的opcode都会分发到相应的处理器(zend_vm_def.h定义)执行, 而按照分发的方式不同, 分发过程可以分为CALL, SWITCH, 和GOTO三种类型.
默认是CALL方式, 也就是所有的opcode处理器都定义为函数, 然后虚拟机调用. 这种方式是传统的方式, 也一般被认为是最稳定的方式.
SWITCH方式和GOTO方式则和其命名的意义相同, 分别通过switch和goto来分发.官方给出的描述说GOTO方式最快.
那么如果使用GOTO方式, 效率上到底能提高多少呢? 今天我就分别使用各种方式来测试一番:
文件上传,一般分为俩种方式FTP和HTTP, 对于我们的互联网应用来说: FTP上传虽然传输稳定, 但是易用性和安全性都是个问题. 你总不至于在用户要上传头像的时候告诉用户"请打开FTP客户端,上传文件到http://www.laruence.com/uploads/中, 并以2dk433423l.jpg命名"吧?
而基于HTTP的上传,相对来说易用性和安全性上就比FTP要增强了很多. 可以应用的上传方式有PUT, WEBDAV, 和RFC1867三种, 本文将分析在PHP中,是如何基于RFC1867实现文件上传的.
setTimeout(function() { alert('你好!'); }, 0); setInterval(callbackFunction, 100);
认为setTimeout中的问候方法会立即被执行,因为这并不是凭空而说,而是JavaScript API文档明确定义第二个参数意义为隔多少毫秒后,回调方法就会被执行. 这里设成0毫秒,理所当然就立即被执行了.
同理对setInterval的callbackFunction方法每间隔100毫秒就立即被执行深信不疑!
但随着JavaScript应用开发经验不断的增加和丰富,有一天你发现了一段怪异的代码而百思不得其解.....
严格来说不单是CSS就能令IE浏览器崩溃(crash),而要配合相应的XHTML架构。到现时为止发现有两种正常写法及一种错误结构分别导致会IE6、IE7崩溃(crash),至于原因我尝试寻找过答案但至今还没找到…如你有这方面的认识或更详细的资料很希望你能分享!
with 15 CommentsJavascript是一种很灵活的语言, 而This关键字又是灵活中的灵活, 但是因为它的灵活, 也注定了它的难用.
以前我用this的时候, 都会觉得不踏实, 老是担心它不知道怎么地就会指到另外的什么地方.
其实, 这都是因为, 我们对它的不了解.
刚好最近再给百度学院做《Javascript高级-作用域/原型链》的ppt, 而swit1983网友也刚好提这个问题, 索性就把这部分内容独立总结出来, 与大家分享.
经常会有人问我, PHP的数组, 如果用foreach来访问, 遍历的顺序是固定的么? 以什么顺序遍历呢?
比如:
<?php $arr[2] = 'huixinchen'; $arr[1] = 2007; $arr[0] = 2008; foreach ($arr as $key => $val) { //结果是什么? }
要完全了解清楚这个问题, 我想首先应该要大家了解PHP数组的内部实现结构.........
with 42 Comments