Time of Update: 2018-12-03
前言將架構從apache+mod_php遷移到nginx+fpm上,會發現如果php指令碼出錯,nginx的eror_log裡不會有記錄,只在access_log裡記錄了500狀態代碼。出現的原因:nginx將php的指令碼執行通過fastcgi轉到fpm上,所以出錯的資訊當然不會記錄在nginx的error_log裡了,但是對於測試環境下程式員的調試這是個悲劇啊,所以我們需要配置fpm的錯誤記錄檔nginx+fastcgi+fpm配置見: http://blog.csdn.net/zinss2
Time of Update: 2018-12-03
nginx日誌格式access_log日誌格式log_format main '$server_name$remote_addr$remote_user[$time_local]"$request"' '$status$body_bytes_sent"$http_referer"' '"$http_user_agent""$http_x_forwarded_for"';日誌參數server_name :
Time of Update: 2018-12-03
好久沒來逛部落格了,實在是因為項目太忙的緣故,抽不出時間來寫,對不住關注我部落格的同學了。最近複習了一下c語言,將C語言的一些排序演算法用php實現了一下,貼出來大家供大家學習指正。 php實現插入排序/** * Description:php實現插入排序的類 * @author wzy */class insert_sort {public $arr;public $size;function __construct($arr) {$this->arr = $arr;$this-
Time of Update: 2018-12-03
前言快年假了,最近想多做些工作上的事情,協助導師的公司度過難關吧,故而演算法的文章會減少很多,可能會記錄一些工作上的收穫。今天查詢資料庫的時候感覺指令碼執行時間挺久,寫了個function計算php指令碼的執行時間,記錄一下吧microtime計算指令碼執行時間 /** * Description:計算目前時間 * * @return float */ function getCurrentTime () { list
Time of Update: 2018-12-03
前言今天完成一個演算法的過程中,有幾個需求模組,其中就有判斷$a數組是否是$b數組的子集,可能最近我寫c比較多,直接就用for迴圈實現了,但是感覺代碼量比較大,不夠優雅!在qq群裡集思廣益了一下,發現很多php提供的系統功能函數都是可以供調用的,這裡記錄一下需求最少的時間複雜度判斷$a數組是否是$b數組的子集// 快速的判斷$a數組是否是$b數組的子集$a = array(135,138);$b =
Time of Update: 2018-12-03
概述cURL是一個利用URL文法規定來傳輸檔案和資料的工具,支援很多協議,如HTTP、FTP、TELNET等。PHP提供了對cURL庫的支援。linux下man一下curl,可以看到:開啟cURL設定安裝php的cURL庫擴充sudo apt-get install curl libcurl3 libcurl3-dev php5-curl重啟php的解釋程式sudo /etc/init.d/php5-fpm restart其次,我們需要通過php_info()函數來確定是否開啟了這個庫<?
Time of Update: 2018-12-03
剛才將排序和尋找演算法放在一起,感覺不方便閱讀,因此將尋找演算法拿出來,供大家討論php基於快速排序實現二分尋找/** * Description:php實現二分尋找演算法的類 * @author wzy */class binary_search{public $arr;public $key;function __construct($arr,$key){//這裡初始化的數組已經是有序數組$this->arr=$arr;$this->key=$key;}function
Time of Update: 2018-12-03
前言今天查看本科生c++試卷的時候,發現還是有同學學習過c++之後,卻對物件導向的3大特性都不瞭解,這裡用php解釋一下介面和多態性,也當作是一種自我學習吧介面PHP類是單繼承,也就是不支援多繼承,當一個類需要多個類的功能時,繼承就無能為力了,為此PHP引入了介面技術如果一個抽象類別裡面的所有方法都是抽象方法,且沒有聲明變數,而且介面裡面所有的成員都是public許可權的,那麼這種特殊的抽象類別就叫介面介面使用interface關鍵字定義,並使用implements來實現介面的方法,且必須完全實
Time of Update: 2018-12-03
起因好吧,我承認最近我跟快速排序幹上了,各種測試編寫快速排序程式,現在就用php實現快速排序,跟之前文章不同,這次php的快排是能解決實際需要的.下面的文章裡我會用c語言的思想提出兩種php快速排序的解決方案:自己實現快速排序,用分治和歸併的思想調用系統的usort,類似於c的qsort,感謝dickeylth的提醒使用環境和條件有這樣一種情況,php裡面的關聯陣列,如果下面這樣的數組資料:$array = array (array ('name' => "xiao",'age'
Time of Update: 2018-12-03
前言用php開發兩年多了,準備也寫一下平時常用的設計模式,都是基於自己的實踐經驗,當然,用設計模式之前首先要看懂設計模式,因此這裡首先講解一下UML類圖。通過UML類圖,能更好的和大家交流,也能很容易就表達出自己的設計想法UMLUnified Modeling
Time of Update: 2018-12-03
前言php可以類比瀏覽器向SAPI發送HTTP請求,但是前提是需要安裝和使用HTTP擴充Ubuntu10.04安裝http擴充安裝libcurl3-openssl-dev(前提安裝好pecl)sudo apt-get install libcurl4-openssl-devsudo apt-get install libmagic-dev安裝peclpecl是用來編譯php擴充源檔案的工具,該工具是在pear包中發布的,安裝方法:sudo apt-get install
Time of Update: 2018-12-03
需求今天做日誌分析時,由於日誌是按天分割的,我需要遍曆30天的日誌,如果獲得類似20130101-20130131這樣的數組尾碼呢,寫了個小程式實現了一下,這裡記錄一下,主要是date函數和strtotime函數的應用php實現代碼<?$stand = "2013-01-";for ($i = 1; $i <= 31; $i ++) { $time = strtotime($stand . $i); $date[] = date("Ymd", $time);}print_
Time of Update: 2018-12-03
前言介紹一種比較高端檢測上傳檔案類型的方法,可以防止尾碼名修改等低端的檢測錯誤,有耐心的同學可以參考一下,我會封裝成類供調用MIME類型在把輸出結果傳送到瀏覽器上的時候,瀏覽器必須啟動適當的應用程式來處理這個輸出文檔。這可以通過多種類型MIME(multipurpose internet mail extensions)來完成。在http中,MIME類型被定義在content-type
Time of Update: 2018-12-03
前言這篇部落格的需求是我需要將一個http請求例如127.0.0.1?a=123&b=456&c=789將所有的get參數取出來拼串到test.com後面,也就是最後理想的uri應該是test.com?a=123&b=456&c=789兩種方法可以實現,建議做之前先google,我就是沒有google導致返工$_SERVER["QUERY_STRING"]簡介這是最簡單的方法,可是大部分人可能不會太熟悉這個伺服器變數,解釋一下$_SERVER["QUERY_STR
Time of Update: 2018-12-03
前言2年多我在項目中用到最多的設計模式就是狀態模式,這裡記錄一下定義狀態模式,又稱狀態物件模式(Pattern of Objects for
Time of Update: 2018-12-03
概述策略模式屬於對象的行為模式。其用意是針對一組演算法,將每個演算法封裝到具有共同介面的獨立的類中,從而使得它們可以相互替換。策略模式使得演算法可以在不影響到用戶端的情況下發生變化UML圖策略模式中主要角色這個模式設計到三個角色:環境角色(Context):持有一個Strategy的引用抽象策略(Strategy)角色:這是一個抽象角色,通常由一個介面或抽象類別實現。此角色給出所有的具體的策略類所需的介面具體策略(ConcreateStrategy)角色:封裝了相關的演算法或行為使用情境假設現在
Time of Update: 2018-12-03
概述責任鏈模式是一種對象的行為模式。在責任鏈模式裡,很多個物件由每一個對象對其下家的引用而串連起來形成一條鏈。請求在這個鏈上傳遞,直到鏈上的某一個對象決定處理此請求。發出這個請求的用戶端並不知道鏈上的哪一個對象最終處理這個請求,這使得系統可以在不影響用戶端的情況下動態重新組織和分配責任UML圖描述一個簡單責任鏈模式的實現責任鏈模式涉及到的角色如下:抽象處理者(Handler)角色:定義出一個處理請求的介面。如果需要,介面可以定義出一個方法以設定和返回對下家的引用。這個角色通常由一個php的抽象類
Time of Update: 2018-12-03
前言昨晚複習了一下用c如何?用戶端和伺服器端的socket通訊,參考連結:http://blog.csdn.net/zinss26914/article/details/9226413,
Time of Update: 2018-12-03
反射的理解它是指在php的運行狀態中,擴充分析php程式,匯出或者提取出關於類、方法、屬性、參數等詳細資料,甚至包括注釋。這種動態擷取的資訊以及動態調用對象的方法的功能稱為反射API。反射是操縱物件導向模型中元模型的API,其功能十分強大,可以協助我們構建複雜,可擴充的應用。(ps:包括在原廠模式中的使用)反射API是php內建的oop技術擴充,包括一些類、異常和介面,綜合使用他們可用來協助我們分析其它類,介面,方法,屬性和擴充。這些oop擴充被稱為反射。ReflectionClass<?
Time of Update: 2018-12-03
ppa安裝php-fpm安裝工具包$ sudo apt-get install python-software-properties 添加ppa源$ sudo add-apt-repository ppa:yola/php5安裝php5-fpmsudo apt-get updatesudo apt-get install php5-fpm其它必要的軟體安裝接sudo apt-get install