Web前端知识

首页 > 免费 > Web前端知识 >

告诉你几个php几个不起眼儿的小技巧

来源:北京汇仁智杰科技有限公司   时间:2016-04-09   点击:

  说是不起眼儿的小技巧,其实应该说是不常用的常规应用吧。很多事情就是这样,知道是一马事儿,会用是一马事儿,精习又是另外一马事儿。而成为高手更是需要扎实的基本功....
  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的神器。
  以上就是分享的几个小技巧,希望能够帮到想要学习的你,有问题的请随时联系小编,我们共同探讨,共同努力的学习。

网络营销推广 . 北京汇仁智杰科技有限公司!

地址:北京市昌平区回龙观龙冠大厦5层
咨询:13370157521
业务QQ:373002979
E - mail:sales @ huirenzhijie.com
企业网站备案:京ICP备15021091号-1

汇仁智杰与众不同

  • 有网络推广经验
  • 有网站建站队伍
  • 有大型网站建设经验
  • 致力于营销型网站建设
  • 始终坚持技术和服务同样重要
查看PC版网站
备案号:京ICP备15021091号-1 版权所有:汇仁智杰