說是不起眼兒的小技巧,其實應該說是不常用的常規(guī)應用吧。很多事情就是這樣,知道是一馬事兒,會用是一馬事兒,精習又是另外一馬事兒。而成為高手更是需要扎實的基本功....
str_repeat
重復輸出字符串就靠它了,類似于perl里面的x
php -r 'echo str_repeat("ABC",5),"\n";'
ABCABCABCABCABC
substr
這個是用來截取字符器的,比如要截取字符串的第一個字母:
$string = 'abcdefg'
substr($string,0,1)就得到了a了。不過現(xiàn)在筆者已經習慣用$string[0]了。順便說一下,當判斷string的長度是不是7的時候,現(xiàn)在改用了isset($string[6]),因為據(jù)說isset比strlen速度快。同理,這個經驗也于適用于count的時候。
trim
trim這家伙是用來去首尾空白和尾部的換行的。用的時間長了,以至于筆者為它就是專門干這個的。沒想它還可以接受一個參數(shù)列表,用來去除首尾不想用的字符,比如要去除'%abcdef%'的%
trim('%abcdef%','%')
continue
這個家伙是用來跳過后面的循環(huán)的.用得時間長了,筆者一直以為它是沒有參數(shù)的,直到有一次筆者要跳出一個三層的循環(huán)...
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);
筆者在使用一些新發(fā)現(xiàn)的函數(shù)的時候,習慣是:
var_dump(ini_set('default_socket_timeout',6));
一運行結果提示:
string(2) "60"
咦?難道設置失???換了幾臺機器試還是這樣。哎,怎么辦呢?研究了半天終于發(fā)現(xiàn)一個問題,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臺機器上,這個函數(shù)都是正常工作的??墒前堰@個腳本借給了一個哥們兒,它機器上竟然報:
Warning: posix_kill() expects parameter 2 to be long, string given
看函數(shù)原形:bool posix_kill ( int $pid , int $sig )
第二個參數(shù)確實要給int.為啥SIGUSR1在我的機器上認在哥們兒機器就不行了呢?php版本問題?哥們的php版本竟然比我的高!
如果想同時支持不同的系統(tǒng)怎么辦呢?加個判斷唄,php有個叫PHP_OS的神器。
以上就是分享的幾個小技巧,希望能夠幫到想要學習的你,有問題的請隨時聯(lián)系小編,我們共同探討,共同努力的學習。
免費學習課堂
推薦文章
告訴你幾個php幾個不起眼兒的小技巧
來源:北京匯仁智杰科技有限公司 時間:2016-04-09 點擊: 次
推薦文章
- 織夢dedecms漏洞修復大全含任意文件2016-09-05
- 整頓微信公眾號過度營銷 對嚴重違2016-01-26
- SEO優(yōu)化過程要避免什么?2016-01-26
- 網站空間被掛馬的原因原因及解決2016-01-26
- 2016企業(yè)該如何運用互聯(lián)網進行營銷2016-01-26
- WEB前端項目開發(fā)中需注意的細節(jié)2016-01-26
- 低價網站建設的危害有哪些?2016-01-15
- 如何詳細的分析你網站的競爭對手2015-06-10
- 網站設計中四個常犯的錯誤2015-01-22
- 如何搭配網站設計中的色彩?2015-01-22