说是不起眼儿的小技巧,其实应该说是不常用的常规应用吧。很多事情就是这样,知道是一马事儿,会用是一马事儿,精习又是另外一马事儿。而成为高手更是需要扎实的基本功....
str_repeat
重复输出字符串就靠它了,类似于perl里面的x
php -r 'echo str_repeat("ABC",5),"\n";'
ABCABCABCABCABC
substr
这个是用来截取字符器的,比如要截取字符串的第一个字母:
$string = 'abcdefg'
substr($string,0,1)就得到了a了。不过现在笔者已经习惯用$string[0]了。顺便说一下,当判断string的长度是不是7的时候,现在改用了isset($string[6]),因为据说isset比strlen速度快。同理,这个经验也于适用于count的时候。
trim
trim这家伙是用来去首尾空白和尾部的换行的。用的时间长了,以至于笔者为它就是专门干这个的。没想它还可以接受一个参数列表,用来去除首尾不想用的字符,比如要去除'%abcdef%'的%
trim('%abcdef%','%')
continue
这个家伙是用来跳过后面的循环的.用得时间长了,笔者一直以为它是没有参数的,直到有一次笔者要跳出一个三层的循环...
ini_set
我们在写基于网络连接的程序的时候,考虑到容错有必要设置一下socket超时时间.php.ini里定义的默认时间是60秒。
; Default timeout for socket based streams (seconds)
; http://php.net/default-socket-timeout
default_socket_timeout = 60
php手册里可以用ini_set修改php.ini的配置,于是想到了:
ini_set('default_socket_timeout',6);
笔者在使用一些新发现的函数的时候,习惯是:
var_dump(ini_set('default_socket_timeout',6));
一运行结果提示:
string(2) "60"
咦?难道设置失败?换了几台机器试还是这样。哎,怎么办呢?研究了半天终于发现一个问题,php手册里是这么写的:
Return Values
Returns the old value on success, FALSE on failure.
哎,看手册太不细心了!
posix_kill
nginx的日志轮循脚本我是用php写的,为了更php,通知nginx重新生成新的日志的时候我用了posix_kill:
posix_kill($nginx_pid,SIGUSR1)
在我用的N台机器上,这个函数都是正常工作的。可是把这个脚本借给了一个哥们儿,它机器上竟然报:
Warning: posix_kill() expects parameter 2 to be long, string given
看函数原形:bool posix_kill ( int $pid , int $sig )
第二个参数确实要给int.为啥SIGUSR1在我的机器上认在哥们儿机器就不行了呢?php版本问题?哥们的php版本竟然比我的高!
如果想同时支持不同的系统怎么办呢?加个判断呗,php有个叫PHP_OS的神器。
以上就是分享的几个小技巧,希望能够帮到想要学习的你,有问题的请随时联系小编,我们共同探讨,共同努力的学习。
免费学习课堂
推荐文章
告诉你几个php几个不起眼儿的小技巧
来源:北京汇仁智杰科技有限公司 时间:2016-04-09 点击: 次
推荐文章
- 织梦dedecms漏洞修复大全含任意文件2016-09-05
- 整顿微信公众号过度营销 对严重违2016-01-26
- SEO优化过程要避免什么?2016-01-26
- 网站空间被挂马的原因原因及解决2016-01-26
- 2016企业该如何运用互联网进行营销2016-01-26
- WEB前端项目开发中需注意的细节2016-01-26
- 低价网站建设的危害有哪些?2016-01-15
- 如何详细的分析你网站的竞争对手2015-06-10
- 网站设计中四个常犯的错误2015-01-22
- 如何搭配网站设计中的色彩?2015-01-22