http://blog.sina.com.cn/yanyugang[订阅][手机订阅]
个人资料
好友
读取中...
访客
读取中...
评论
读取中...
图片幻灯
友情链接
便民查询
分类信息

在这里查询您需要的分类信息!

火车票查询

在这里查询你需要的火车票信息!

博文
40条技巧优化php代码(2009-11-26 18:29)

1.如果一个方法能被静态,那就声明他为静态的,速度可提高1/4;

2.echo的效率高于print,因为echo没有返回值,print返回一个整型;

3.在循环之前设置循环的最大次数,而非在在循环中;

4.销毁变量去释放内存,特别是大的数组;

5.避免使用像__get, __set, __autoload等魔术方法;

6.requiere_once()比较耗资源;

7.在includes和requires中使用绝对路径,这样在分析路径花的时间更少;

8.如果你需要得sexinsex到脚本执行时的时间,$_SERVER['REQUSET_TIME']优于time();

9.能使用字符处理函数的,尽量用他们,因为效率高于正则;//php100.com

10.str_replace字符替换比正则替换preg_replace快,但strtr比str_replace又快1/4;

11.如果一个函数既能接受数组又能接受简单字符做为参数,例如字符替换,并且参数列表不是太长,可以考虑多用一些简洁的替换语句,一次只替换一个字符,而不是接受数组做为查找和替换参数。大事化小,1+1>2;

12.用@掩盖错误会降低脚本运行速度;

13.$row['id']比$row[id]速度快7倍,建议养成数组键加引号的习惯;

14.错误信息很有用;

15.在循环里别用函

linux小技巧(2009-11-23 15:58)

++实现RedHat非正常关机的自动磁盘修复
先登录到服务器,然后在/etc/sysconfig里增加一个文件autofsck,内容如下:
AUTOFSCK_DEF_CHECK=yes
PROMPT=yes

++改变文件或目录之最后修改时间(变为当前时间)
执行格式:touch name ( name 可为文件或目录名称。)

++如何设置login后欢迎信息
修改/etc/motd,往里面写入文本即可。

++如何设置login前欢迎界面
修改/etc/issue或者issue.net,往里面写入文本。
issue的内容是出现在本机登录的用户界面上,而issue.net则是在用户通过网络telnet的时候出现。

++如何修改网卡MAC地址
首先必须关闭网卡设备,否则会报告系统忙,无法更改。
命令是: /sbin/ifconfig eth0 down
修改 MAC 地址,这一步较 Windows 中的修改要简单。
命令是:/sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
重新启用网卡 /sbin/ifconfig eht0 up
网卡的 MAC 地址更改就完成了

++建立别名/删除别名
alias cp='cp -i'

如果查看你自己的主目录中是否有.vimrc文件,如果有就加入下面二行,如果没有,就建一个这个文件。

let &termencoding=&encoding
set fileencodings=utf-8,gbk,ucs-bom,cp936

系统
# uname -a               # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue   # 查看操作系统版本
# cat /proc/cpuinfo      # 查看CPU信息
# hostname               # 查看计算机名
# lspci -tv              # 列出所有PCI设备
# lsusb -tv              # 列出所有USB设备
# lsmod                  # 列出加载的内核模块
# env                    # 查看环境变量
资源
# free -m              &nbs

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

1、 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。

例如: 退出

2、 进行url跳转时可以整体使用encodeURI

例如:Location.href=encodeURI(”http://cang.baidu.com/do/s?word=百度&ct=21″);

3、 js使用数据时可以使用escape[Huoho.Com编辑]

例如:搜藏中history纪录。

4、 escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。

最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不编码字符有82个

1.Minimize HTTP Requests 减少HTTP请求
2.Use a Content Delivery Network 利用CDN技术
3.Add an Expires or a Cache-Control Header 设置头文件过期或者静态缓存
4.Gzip Components Gzip压缩
5.Put Stylesheets at the Top 把CSS放顶部
6.Put Scripts at the Bottom 把JS放底部
7.Avoid CSS expression_r_rs 避免CSS expression_r_rs
8.Make JavaScript and CSS External 将JS和CSS外链
9.Reduce DNS Lookups 减少DNS查找
10.Minify JavaScript and CSS 减小JS和CSS的体积
11. Avoid Redirects 避免重定向
12. Remove Duplicate Scripts 删除重复脚本
13. Configure ETags 配置ETags
14. Make Ajax Cacheable 缓存Ajax
15. Flush the Buffer Early 尽早的释放缓冲
16. Use GET for AJAX Requests 用GET方式进行AJAX请求
17. Post-load Components 延迟加载组件
18. Preload components 预加载组件
19. Reduce the Number of DOM Elements 减少DOM元素数量
20. Split Components Across Domains 跨域分离组件
21. Minimize the Number of iframes
在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill-9也不能杀死僵尸进程。补救办法是杀死僵尸进程的父进程(僵尸进程的父进程必然存在),僵尸进程成为'孤儿进程',过继给1号进程init,init始终会负责清理僵尸进程。
    僵尸进程是指的父进程已经退出,而该进程dead之后没有进程接受,就成为僵尸进程.(zombie)进程
    怎样产生僵尸进程的:
    一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)。在Linux进程的状态中,僵尸进程
    是非常特殊的一种,它已经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列

1、数组键名为数字键名时,要合并的两个数组中有同名数字KEY的时候,使用array_merge()不会覆盖掉原来的值,而使用“+”合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉;

2、当相同数组键名为字符时,“+”运算符与键名为数字时一样,但array_merge()此时会覆盖掉前面相同键名的值。

 

总结:+操作对于数字或字符串为键值的结果是一样的,都不会覆盖,而array_merge对于数字索引的会真正合并,而对于字符串为键值的采取覆盖的方式。

1)XHTML 元素必须被正确地嵌套。
2)XHTML 元素必须被关闭。
3)标签名必须用小写字母。
4)XHTML 文档必须拥有根元素。
TIME_WAIT状态的意义(2009-11-16 20:42)
客户端与服务器端建立TCP/IP连接后关闭SOCKET后,服务器端连接的端口
状态为TIME_WAIT
 
是不是所有执行主动关闭的socket都会进入TIME_WAIT状态呢?
有没有什么情况使主动关闭的socket直接进入CLOSED状态呢?
 
主动关闭的一方在发送最后一个 ack 
就会进入 TIME_WAIT 状态 停留2MSL(max segment lifetime)时间
这个是TCP/IP必不可少的,也就是“解决”不了的。

也就是TCP/IP设计者本来是这么设计的
主要有两个原因
1。防止上一次连接中的包,迷路后重新出现,影响新连接
  (经过2MSL,上一次连接中所有的重复包都会消失)
2。可靠的关闭TCP连接
  在主动关闭方发送的最后一个 ack(fin) ,有可能丢失,这时被动方会重新发
  fin, 如果这时主动方处于 CLOSED 状态 ,就会响应 rst 而不是 ack。所以
  主动方要处于 TIME_WAIT 状态,而不能是 CLOSED 

TI