Time of Update: 2016-07-21
靜態調用非靜態方法!!這在java,c#中是不可想象的,也是絕對不行的。這樣的錯誤在這些語言中會在編譯階段就被指出錯誤的。但是對於php這樣的動態語言呢?首先這個是文法沒有錯誤的,php –l 找不出錯誤來的。如果運行呢?先看一個例子複製代碼 代碼如下:class myClass { private $name = "myClass"; public function echoName(){ echo $this->name; } public
Time of Update: 2016-07-21
這是一個系列 沒辦法在一兩天寫完 所以一篇一篇的發布大致大綱:1.curl資料擷取系列之單頁面採集函數get_html2.curl資料擷取系列之多頁面並行採集函數get_htmls3.curl資料擷取系列之正則處理函數get _matches4.curl資料擷取系列之代碼分離5.curl資料擷取系列之並行邏輯控制函數web_spider單頁面採集在資料擷取過程中是最常用的一個功能 有時在伺服器訪問限制的情況下 只能使用這種採集方式 慢 但是可以簡單的控制
Time of Update: 2016-07-21
一切源於一個實驗,請看下面的例子:表:複製代碼 代碼如下:CREATE TABLE IF NOT EXISTS `foo` ( `a` int(10) unsigned NOT NULL AUTO_INCREMENT, `b` int(10) unsigned NOT NULL, `c` varchar(100) NOT NULL, PRIMARY KEY (`a`), KEY `bar` (`b`,`a`) ) ENGINE=InnoDB; CREATE TABLE IF NOT
Time of Update: 2016-07-21
前面手工寫了一個下拉自動補全功能,寫的簡單,只實現了滑鼠選擇的功能,不支援鍵盤選擇。由於項目很多地方要用到這個功能,所以需要用心做一下。發現select2這個外掛程式的功能可以滿足當前需求。在使用jquery外掛程式select2的過程中遇到了一些疑惑,無論是穿json資料還是通過jsonp方式取資料,都能夠正確返回。可是下拉式清單中的條目卻不能被選中,對滑鼠和鍵盤選擇都無效。後來發現,select2外掛程式在實現選中時是以資料中的id欄位為準的。所以不管是json還是jsonp,ajax返回的
Time of Update: 2016-07-21
PHP 有三大流程式控制制:順序控制,分支控制,迴圈控制。1、順序控制:就是程式按順序從上往下一步一步的執行。2、分支控制:程式有選擇的執行。又分單分支,多分支,多重分支。a、單分支:基本文法結構:if(條件運算式){ 語句; //.....;} 提示:條件運算式不管有多複雜,最終就是true或者false;eg:a=11;if(a>10){ echo
Time of Update: 2016-07-21
當有多條mysql語句連起來需要執行,比如$sqls= “insert table a values(1,2); insert table a values(2,3);”需要執行的話php中可以使用的方法有三個:mysql_querypdomysqli三種方法當sqls語句沒有問題的時候都是可以的。但是當sql語句是錯誤的時候會出現問題第一條sql錯誤:三個方法都返回false第一條sql正確,第二條sql錯誤:mysql_query、pdo、
Time of Update: 2016-07-21
Web伺服器執行一個PHP指令碼,有時耗時很長才能返回執行結果,後面的指令碼需要等待很長一段時間才能繼續執行。如果想實現只簡單觸發耗時指令碼的執行而不等待執行結果就直接執行下一步操作,可以通過fscokopen函數來實現。PHP支援socket編程,fscokopen函數返回一個到遠程主機串連的控制代碼,可以像使用fopen返回的控制代碼一樣,對它進行fwrite、fgets、fread等操作。使用fsockopen串連到本機伺服器,觸發指令碼執行,然後立即返回,不等待指令碼執行完成,即可實現非
Time of Update: 2016-07-21
php_cli模式簡介 php-cli是php Command Line Interface的簡稱,如同它名字的意思,就是php在命令列啟動並執行介面,區別於在Web伺服器上啟動並執行php環境(php-cgi, isapi等) 也就是說,php不單可以寫前台網頁,它還可以用來寫背景程式。 PHP的CLI shell指令碼適用於所有的PHP優勢,使建立要麼支援指令碼或系統甚至與GUI應用程式的服務端!——註:windows和linux下都支援php_cli模式 PHP-cli應用情境:
Time of Update: 2016-07-21
布爾類型是PHP中 最簡單的類型。它的值可以為 TRUE 或 FALSE。如:$foo=false;$foo1=true;echo "為假時輸出值為:".$foo; //沒有輸出值echo "為真時輸出值為:".$foo1; //輸出1這裡主要的細節:當轉換為 boolean 時,以下值被認為是 FALSE :1、the 布爾值 FALSE 自身 2、the 整型值 0 (零) 3、the 浮點型值 0.0 (零) 空 字串, 以及 字串 "0" 4、不包括任何元素的數組
Time of Update: 2016-07-21
複製代碼 代碼如下:02 if(!function_exists('get_headers')){ 03 function get_headers($url,$format=0){ 04 $url=parse_url($url); 05 $end="\r\n\r\n"; 06
Time of Update: 2016-07-21
複製代碼 代碼如下: setcookie("username","bu",time()+3600); echo "aaaaa";?>運行有警告Warning: Cannot modify header information - headers already sent by
Time of Update: 2016-07-21
安全過濾後的getIP函數複製代碼 代碼如下: function getIP() { $realip = ''; //設定預設值 if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $realip = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { $realip = $_SERVER['HTTP_CLIENT_IP']; }
Time of Update: 2016-07-21
如果你的url連結是相對路徑“static/mapi.css”,你想把他批量替換成絕對路徑“http://dev.baidu.com/wiki/static/map/cloud/static/mapi.css”。那麼,你可以這樣做: 寫一個PHP檔案,把需要替換的網址寫進去。 這個代碼的意思就是,把#BASE_URL#替換成 http://api.map.baidu.com/lbsapi/cloud/ 。
Time of Update: 2016-07-21
首先需要解釋的是什麼是守護進程。守護進程就是在後台一直啟動並執行進程。比如我們啟動的httpd,mysqld等進程都是常駐記憶體內啟動並執行程式。針對需求進行分析:需求:有一個常駐隊列messageQueue(假設在redis記憶體中),這個隊列會有可能有請求不週期性往隊列中增加元素。同時我們要求在隊列中有元素的時候,按照隊列順序將元素pop出來,並進行處理(假設這個處理只是echo ‘test');解決方案:現在假設已經有了兩個函數function oPopMessageQueue(){ …}
Time of Update: 2016-07-21
PHP無限分類,Google一下就能找到很多相關資料,思路比較拉風的,也是用得比較多的就是分類表至少有id,pid,name三個欄位,id自增表分類,pid為父分類,name為分類名,這樣就構成了一棵樹,如下,算是我查詢分類表得到的結果集。複製代碼 代碼如下://類比PHP無限分類查詢結果return array( array( 'id'=>1, 'pid'=>0, 'name'=>'首頁' ), array( 'id'=
Time of Update: 2016-07-21
項目過程中有很多全域變數, 需要全域儲存,是否是使用全域變數來進行儲存?那就弱爆了。Zend使用Registry機制(註冊表)儲存物件和值,是一個儲存物件和值的容器。Zend_Registry這個類就是做這個目的程式碼範例Zend_Registry::set('config', $config); Zend_Registry::get('config');程式碼分析這兩個函數是最常用的兩個函數。我們來看一下這個類class Zend_Registry extends
Time of Update: 2016-07-21
觀察者模式:定義對象間一種一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並自動更新。
Time of Update: 2016-07-21
apc定義:apc是一個開放自由的php opcode緩衝。它的目標是提供一個自由、開放和健全的架構,用於緩衝和最佳化php中間代碼。apc常用函數: 1.apc_clear_cache() 清楚apc緩衝內容2.apc_define_constants(string key,array constants,[,bool case_sensitive]) 將數組constants以常量加入緩衝3.apc_load_constants(string key)
Time of Update: 2016-07-21
首先說明,遠程伺服器是可遠端存取的。 我遇到的問題是這樣的:有A,B,C三台伺服器,C為伺服器,B可以用PHP成功串連上C機器的mysql,而A機器則不能串連! 可以說,肯定不是代碼有什麼問題,伺服器上的mysql設定也是沒什麼問題的,因為B機器都是可以的。 肯定是A機器的設定有問題! 在網上一頓搜,各種說mysql授權問題的,以及修改php.ini的,修改防火牆的,事實上都不是這些問題導致的。
Time of Update: 2016-07-21
原廠模式:由工廠類根據參數來決定建立出哪一種產片類的執行個體工廠類:一個專門用來建立其他對象的方法類。即按需分配,傳入參數進行選擇,返回具體的類作用:對象建立的封裝、簡化建立對象的操作,即調用工廠類的一個方法來得到需要的類補充:1.主要角色:抽象產品(Product)、具體產品(Concrete Product)、抽象工廠角色(Creator)2.優缺點 優點:Factory 方法模式可以允許系統在不修改工廠角色的情況下引進心產品