原创 PHP實現系統編程(二) --- 多進程編程介紹及孤兒進程、殭屍進程

多進程編程也是系統編程的一個重要方面,但PHP程序員通常不需要關心多進程的問題,因爲web服務器或者PHP-FPM已經幫我們管理好進程方面的問題了,但是如果我們想要用PHP來開發CLI程序,多進程編程是不可或缺的基本技術。 PHP中關於進

原创 Redis Desktop Manager報錯:Connection error: The proxy type is invalid for this operation

 redis-cli可以正常連接,但Redis Desktop Manager0.9.8卻連接不上報上面這個錯,最後發現把我的fiddler抓包軟件關掉就可以正常連接了,之後再打開fiddler也沒事了,或者降爲0.8.x版本也沒這個問

原创 PHP統計UTF-8編碼文件中的字符數

UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼,由Ken Thompson於1992年創建,現在已經標準化爲RFC 3629。UTF-8用1到4個字節編碼Un

原创 PHP中include和require區別

最近面試中被問到include和require區別,現在總結一下。 先上官方手冊鎮樓:    然後再對網上的各種謠言一一論證。 謠言一:include有返回值,而require沒有 驗證代碼: <?php $res1 = requ

原创 InnoDB存儲引擎使用的幾點建議和最佳實踐

爲每一張表最經常訪問的一個或多個列設置主鍵索引,如果沒有很明顯的主鍵字段,可以使用一個自增字段作爲主鍵索引。 根據多張表中相同的ID值,使用JOIN從這些表中提取數據時。如果想獲得最高的JOIN性能,在JOIN的列上加上外鍵,並把它

原创 php使用redis來實現限流和併發控制

      在一些瞬時可能會有大量併發請求同時到達服務器的場景下,比如搶購、限時活動等等,如果不對併發量進行控制,瞬時的高併發可能會導致系統崩潰,這時我們就需要把一部分請求擋掉,可以結合redis來實現一個基本的限流功能。 functi

原创 php實現crc16算法

crc(循環冗餘校驗)是一種常用來檢驗數據完整性和正確性的算法,常用於網絡傳輸校驗,壓縮算法等等,簡單來說,crc把一個待校驗字符串當作一個非常大的整數,然後除以一個特定的數,所得的餘數就是crc校驗值,只不過在進行除法運算時,對二進制數

原创 php向redis list一次性lPush多個值

php redis擴展沒有介紹向list中一次性push多個值的用法,但其實lPush和rPush是支持push多個值的,文檔中有介紹 lPush - Prepend one or multiple values to a list r

原创 PHP實現對數字分隔加千分號的方法

今天小編就爲大家分享一篇關於PHP實現對數字分隔加千分號的方法,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧 對於較大數字,添加千分號可以方便快速地讀出數值。千分號是指從

原创 FastCGI協議詳解及代碼實現

FastCGI協議是在CGI協議的基礎上發展出來的,如果想了解CGI協議,可以看我另一篇文章:動態web技術(二) --- CGI,FastCGI程序本身監聽某個socket然後等待來自web服務器的連接,而不是像CGI程序是由web服

原创 PHP實現系統編程(五)--- 編寫守護進程詳解

(一)進程組、會話、控制終端、控制進程等概念 進程組:每個進程都有一個所屬的進程組 (process group),進程組有一個進程組長(process group leader),進程組ID即爲這個進程組長的進程號,所以判斷一個進程是否

原创 Docker容器技術介紹(五) --- 目錄、文件及數據

容器在運行的過程中,難免會涉及到文件的讀寫,比如web服務器讀取靜態文件,記錄訪問日誌和錯誤日誌,設定網站根目錄以及目錄權限,還有多個容器之間共享數據等等。 Docker在容器中管理數據主要有兩種方式: 數據卷(Data Volumes)

原创 Docker容器技術介紹(七)--- Dockerfile簡介

Docker 創建鏡像有多種方式,比如之前介紹過的docker commit 命令可以把我們在容器中的修改保存並生成一個新的鏡像,除此之外,我們還可以編寫一個Dockerfile,然後根據這個Dockerfile去構建鏡像,而Docker

原创 從遞歸(代碼)的角度理解二叉樹的先序/中序/後序三種遍歷順序

二叉樹的遍歷原理其實是很簡單的,就是從二叉樹的根節點開始,把它的左節點以及左節點下面的節點再當作一棵二叉樹,和右節點以及右節點下面的節點也再當作一棵二叉樹,依此類推,直到節點下面沒有節點爲止。二叉樹的有三種遍歷順序:先序遍歷、中序遍歷、後

原创 簡單易懂的C語言實現雙向鏈表代碼

鏈表是一種常見的數據結構,鏈表中的每一個節點都保存了上一個或下一個元素的位置,所以表現爲增刪元素效率較高,查找元素效率較低 簡單易懂的C語言實現代碼: #include <stdio.h> #include <string.h> #i