PHP的json数据编译和解译,字符编码无关。

这里只就PHP5.2.0+以上版本而言,因为JSON扩展是自PHP5.2.0才开始引入的。早期版本没有默认引入。

json现在应用比较广泛,主要是由于ajax技术的原因。json可以很方便的传输具有属性的数据格式,方便前端进行解析处理,更好的将数据流量传输降低并且也能使前后端尽可能的分离。

貌似自06年开始我在做的项目如果客户不强烈要求的情况下,我都会使用UTF-8进行编码开发,UTF-8开发会有很多好处,比如前、后端数据传输很方便无须额外的编码开销,另外储存的字符也比较直观,虽然有数据容量的浪费,但在目前储存如白菜价的环境下,容量问题应该不大。

在使用UTF-8编码的时候,json_encode/json_decode可以很方便的处理(虽然编译后的数据中的中文看起来很怪异,但因为也不需要直接使用数据所以也无所谓),因为PHP自带的json扩展库只支持UTF-8编码。

但有的时候客户强烈选择使用GBK/GB2312进行编码的情况下,自带的json就应付不了了。所有涉及到中文的经过编译后会变成null。 更多 »

分享一下近期在开发过程中用到的一些PHP库类

手里的项目进展还算顺利,即将进入一个新阶段,越来越感觉运营中的那句话“先开枪后瞄准”的确是进行一个商业计划(特别是比较新颖的)时,需要考虑的。技术人员不能眼里只有纯粹的技术,如若想要尽快的实现盈利,一些非关键性的功能和技术方面可以放到后面去考虑,目的是要尽快的确保项目能够稳定的运行且尽快的抢占市场赢得一些商机。

一直以来开发的程序都没有用过现成的框架,由于对面向对象开发还是有一些障碍(心理接受以及性能方面考虑等),但由于一些长期的运营项目涉及未来扩展和开发问题(面向过程开发在这方面还是很弱的),所以自己弄了一个面向过程开发的一个“框架”(只能算是一个雏形吧),虽然不能解决大问题,但最起码可以让新开发中减少很多重复性的操作。
更多 »

HTML中的文本区textarea发送换行的测试

一直都在想在HTML前端页面表单的文本区textarea输入换行的时候,服务器接收到的这个文本区的数据是什么样的。

都知道不同的操作系统对于换行的表达不一样,Windows的换行符号是“\r\n”、类Unix系统换行符号是“\n”、而Mac OS换行符号则是“\r”(Mac OS 9以前是“\r”,以后就是“\n”了)

我其实就是想了解一下:
如果客户端是Win系统,服务端是类Unix系统,那么在客户端提交的表单内的换行符号是什么?
反之呢?
更多 »

运营策略之培养用户的使用习惯

在蓝色理想上看到的文字,简单而精悍,对于运营项目初期构架具有一定的思考意义^_^ 更多 »

关于用户邮箱验证的一个思路

当下很多运营或者应用都会引导用户激活验证注册的Email地址,为了确保获得更可靠的用户(虽然可靠性不是很高),同时也为了避免地址不被滥用,尽力获取更优化的用户资源等等,好处是很多的。

一般在验证流程上都很简单,无非是:根据用户登记的Email发送一个验证邮件,用户收到邮件后,访问一个特定的处理链接,系统接收后,便会确认此人Email通过验证激活。

这个方式简单容易,设计也很方便。

但有一个“问题”,某个用户起初登记了一个A地址,然后通过了验证,过了一阵他又将Email改成了B地址,也通过了验证,可过了一阵又因为某种原因他又将Email改回了A地址,可系统仍旧提示未通过验证,这个挺囧的——当然其实也不是什么大不了的问题,不过个人始终觉得这是一个人性化的考虑。已经通过验证了的邮箱为什么还要再次验证呢?

近期在一个项目上也有类似的处理,因为基于该异想天开的想法,我特意费时巴拉的用了一个新的机制,虽然没人能够看到,但我相信多多少少会让用户觉得有点人味的^_^

具体流程其实很简单,无非是增加一个数据表,用来储存经过验证的Email地址,且每个Email对应一个用户id。

当用户通过验证的时候记录下他的id和Email,以及其他信息(比如验证时间等等)

当用户修改Email的时候,先去到这个数据表内查询该记录是否存在(uid和email同时满足),存在了就表面该用户已经通过验证了,不需要再次发送验证邮件。

uid与Email是作为一个唯一性索引键(UNIQUE)存在的。这样可以确保别人冒用这个Email地址的情况也被认为是通过验证的。 也就是说,只有其本人曾经用过的Email地址才会采用跳过验证的机制。

简单说:

用户A曾经验证通过了a、b、c三个Email地址。 那么日后他无论将Email地址修改变换为这三个任意一个的时候,系统都不会提醒他再次去验证。

如果另一个用户B登记了a地址,那么系统还是要提醒他进行验证的,因为数据表记录下验证通过a地址的用户是A而不是B。

以上就是我在项目中关于用户Email地址验证的一个机制(当然实际操作过程中,还要加入一个验证的条件限制等条件,避免用户频繁的请求,关于这部分处理,相信所有的验证机制都会考虑的。),不一定有什么特别重大的作用,不过觉得还是挺有意思的,记录下来分享一下吧。

CKEditor或者FCKEditor编辑器的分页处理

CKEditor就是FCKEditor的改名版本,呵呵。基于javascript的前端HTML编辑器,一般做内容管理系统的基本都用过这个编辑器,很强大很方便。

做内容管理某个内容可能文字会很多,分开发表的话不方便维护管理,一般就是直接使用CKEditor的分页功能,说白了这个无非就是类似下面的一段HTML代码:

 

如果要想在前台输出的时候分页是做不到的。我一般会有两种方式进行处理:

1.利用服务端在输出到页面前进行分页。

2.利用前端javascript直接进行分页。

更多 »

建议所有的程序开发者一起来保护MySQL——《拯救MySQL》

对于其他程序不甚了解,但就PHP开发来说,估计99%的人都选择MySQL作为数据库,因为MySQL给大家的印象是轻巧、易用并且最重要的是它有一个免费的社区版本,这个版本同它收费版本是完全一样的区别仅在于它的商业版本提供技术服务而已。

作为一个PHPer来说,我自2000年接触PHP,因为没有任何程序语言基础,所以学习起来挺费劲,一直使用文本储存数据,但真的觉得既麻烦又不安全,然后2001年年初的时候第一次开始接触MySQL,对于我无任何数据库语言概念的人来说上手的确有一点点困难,但我清晰的记得,看完了几个例子以后,我便轻松的了解了MySQL知道了它的强大、易用,而且最主要的是它不像Orlce和SQL Server,它是免费的!!

自那个时候起,我慢慢开始了解了这世上还有一些人,在维护着PHP、维护着MySQL、维护着Apache,我知道了一个名词“开源社区”,知道了还有一个免费的操作系统Linux ,知道这世界上还有一群具有创新、共享精神的人……

到现在,熟练使用并在自己项目上应用部署MySQL已经有接近8年的时间了,从MySQL4.0用到MySQL5.1,这个过程是很奇妙的,我从未担心过什么,因为我知道MySQL精神会继续着 ……

突然有一天,我知道了那个卖得很贵的数据库Orcal的东家甲骨文开始“惦记”着MySQL了 ,就我个人的感觉来说,这不是什么好事,如果这个公司或者其他别有用心的公司去收购MySQL,那么可能会带来的两种情况就是:1.为了维护其自身收费的数据库产品,势必会打压MySQL的开发,致使MySQL慢慢落后于其他数据库,导致它的淘汰;2.将MySQL也变成一个完全收费的产品。我个人可能更容易想到第一种情况,如果是那样,那真的是一个灾难……

为此,包括MySQL的创始人Michael Widenius在内的一些人组织了一个《拯救MySQL》的活动,请求所有MySQL的支持者支持和保护MySQL。

刚刚也在上面签名了,做为能力有限的支持者来说,我也许只能做到这些了。

希望支持MySQL的朋友们,一起来救救MySQL,点击进入这个链接填写表单就可以了:http://www.helpmysql.org/cn/petition

不要害怕E文,呵呵,是多语言的,我给的连接是中文版的^_^

拯救MySQL

拯救MySQL

MySQL字段的取值范围

设计数据库的时候会为表中涉及到的字段设定一个范围,如果不考虑这个取值范围可能会对未来的运营产生或者性能问题或者数据问题。如果实际的取值大于设计的取值则会造成数据无效或丢失导致程序出错,如果实际的取值小于设计的取值虽然不会对程序产生什么错误,但会白白的浪费储存空间导致性能问题。 更多 »

五种开源协议的比较和说明

为了节省开发周期,大多都会选择一些开源的框架或者工具,涉及到好多好多,比如编辑器CKEditor(原来叫FCKeditor)就是使用GPL, LGPL and MPL协议,而经常用到的jQuery却是GPL和MIT。长久来除了对BSD了解外其他的确有点模棱两可,看到一篇文章介绍几种开源协议的说明感觉不错,摘下来留着学习…… 更多 »

YSlow 2.0.0b3 For firefox 发布啦(提供下载)!

昨天打开Firefox就发现YSlow提示更新了,不过当时更新不了,因为忙也就没理会,今天刚刚抽空打算更新一下,郁闷,死活都下载不了。不过想了个办法终于下载到了yslow-2.0.0b3-fx.xpi文件,哈哈。

YSlow由1.0.2升级到2.0.0b3这个版本号的跨度可够汗的了,应该是有很大的结构性的更新吧,否则版本号不可能这么大的变动的,果然,安装后,发现新版的确变化很大的,而且增加了几个很有用的工具。 更多 »

五.一快乐!

又到五.一节了,似乎放假与我无关,所以对这天也没什么太大的企盼,这两年已经慢慢习惯了。天天都是放假、天天都是工作日,虽然不喜欢某些外来词,不过对于“宅”似乎还是有点中意,哈哈。因为我现在发现我就比较宅。没什么事的时候甚至两、三个月都不会下楼(当然排除有时候扔垃圾、到报箱取报纸什么的)。很多时候,习惯了一个人静静坐在电脑前对着满屏幕红绿蓝相间的代码,然后沉思于开发的思路。偶尔也会烦也会很累,然后就会看看电影,玩玩小游戏,要不就鼓捣点什么新鲜玩意儿,我不是个能承受压力的人,但绝对是一个会释放压力的,否则,楼下的石板路早就被我从6楼上踩成血肉模糊多少次啦,哈哈。

更多 »

孤单中的寂寞

 最近很忙,忙得都顾不上发现时间。

 周六周日没太睡觉,似乎好像也没怎么吃饭。发现大站的运营的确是很麻烦,运营中的概念开发时要考虑,有时候这些概念会同技术上的性能相冲突,这是一个极其矛盾而又无可奈何的事情。虽然也有乐趣可言,但的确感觉有些累了。似乎发现自己有些老了,连通宵都不如以前那么精力十足了,或许真的老了,到了明年再怎么躲那个年龄槛都躲不过去了,老了,突然想起来之前有个演唱会叫《再不相爱就老了》,有点感觉寂寞了…… 更多 »

Deepseath Modified from Green Hope Theme · Proudly powered by WordPress · 津ICP备09005418号  津公网安备 12010302001005号