[备忘]PHP开发中的心得(不断更新)

1、PHP涉及远程调用接口或采集时,千万不能使用file_get_contets()、fopen()函数。由于file_get_contents()、fopen()函数没有timeout选项,PHP会默认采用60秒为超时时间,因此若接口供应端服务器异常,将导至调用端PHP进程僵死,对服务器性能影响严重! 解决方案即采用fsocketopen,该函数带有timeout属性,建议默认timeout为3~5秒。如果要调用本地文件一定要把目录过滤安全,这一函数基本可列为高危函数了。

2、JS在使用document.domain来解决跨域问题时要注意一些对象会使脚本停止运行,从而导至domain属性失效。例如:designMode='on';

3、数据库在数据量较大的情况下不能疏忽,要使用队列及清除容余操作。

4、Mysql上delete不释放空间,且速度还很慢,因为要写日志。truncate自动回收空间,且速度很快,但是并不压缩数据文件。

5、PHP使用socket方式调用接口时会因服务器配置环境而在http头信息中加入长度等信息,从而影响返回值。解决方法为统一配置,或在返回值加头尾标识。

6、Mysql里MyISAM数据表有索引,该表的数据行保存在一个数据文件中,索引值保存在索引文件中。一个数据表上可能有多个索引,但是它们都被存储在同一个索引文件中。索引文件中的每个索引都包含一个排序的键记录(它用于快速地访问数据文件)数组。MyISAM非常快。但它没有事务处理,通俗的说即队列,容易锁表。InnoDB存储引擎具事务处理,适合用于写操作较多的地方。如果你不需要使用特殊的索引帮助查询执行得更快,就不要建立索引。

7、有的主机不允许IP访问,这时fsocketopen的host: domain参数可以指定。

posted @ 2008-12-19 09:34  Bateau.zhou  阅读(179)  评论(0编辑  收藏  举报