Time of Update: 2016-07-21
複製代碼 代碼如下: /** * 職責鏈模式 * * 為解除請求的寄件者和接收者之間的耦合,而使用多個對象都用機會處理這個請求,將這些對象連成一條鏈,並沿著這條鏈傳遞該請求,直到有一個對象處理它 * */ abstract class Handler { protected $_handler = null; public function setSuccessor($handler) { $this->_handler = $handler; } abstract function
Time of Update: 2016-07-21
這時,函數bool session_set_save_handler ( callback open, callback close, callback read, callback write, callback destroy, callback gc )就是提供給我們解決這個問題的方案. 該函數使用的6個函數如下: 1. bool open() 用來開啟會話儲存機制, 2. bool close() 關閉會話儲存操作. 3. mixde read()
Time of Update: 2016-07-21
例如部落格的展示窗 複製代碼 代碼如下: /********************************************** * Filename : img.php * Author : freemouse * web : www.cnphp.info * email :freemouse1981@gmail.com * Date : 2010/12/27 * Usage: * * ***********************************************/
Time of Update: 2016-07-21
經查證,在進行使用session_destroy()函數必須先調用session_start()函數。 也就是要有如下代碼: 複製代碼 代碼如下: session_start(); session_destroy(); ?>
Time of Update: 2016-07-21
因此,我們主要解決的思路是效驗session ID的有效性. 以下為引用的內容: 複製代碼 代碼如下: if(!isset($_SESSION['user_agent'])){ $_SESSION['user_agent'] =$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT']; } /* 如果使用者session ID是偽造 */ elseif ($_SESSION['user_agent'] !=
Time of Update: 2016-07-21
看代碼: 複製代碼 代碼如下: New Document $string1 = "i am a phper"; $string2 = "這網站是指令碼之家"; print_r(str_split($string1)); echo ""; print_r(str_split($string2,4)); ?> 測試結果打出我所料——中文亂碼
Time of Update: 2016-07-21
今天學習CI架構過程中遇到個問題: A PHP Error was encountered Severity: Notice Message: Undefined variable: user 一般在預設的普通PHP檔案中輸出一個未定義聲明的變數是不會報錯誤的,但在codeigniter架構下卻要報錯誤,這對於想整合 添加 和 修改 頁面於一體的”懶人”很不方便,由於是初學者開始還想怎麼在代碼中屏蔽這一錯誤提示呢.甚至用到了@,但聽很多人都說@會大大降低效能….
Time of Update: 2016-07-21
複製代碼 代碼如下: /* 函數定義: * 1.函數是一個被命名的 * 2.獨立的程式碼片段 * 3.函數執行特定任務 * 4.並可以給調用它的程式返回一個值 * * 函數的優點: * 1.提高程式的重用性 * 2.提高程式的可維護性 * 3.可以提高開發效率 * 4.提高軟體的可靠性 * 5.控製程序的複雜性 * * 函數的聲明 * function 函數名(){ * * } * * function 函數名(參數1,參數2,參數...) * { * 函數體 * } * * function
Time of Update: 2016-07-21
複製代碼 代碼如下: /* * 封裝性:物件導向三大特性之一 * * 1.就是把對象的成員(屬性,方法)結合成一個獨立的相同單位,並儘可能隱藏對象的內部細節 * 存取權限修飾符 public protected private * private:私人的,用這個關鍵字修飾的成員,只能在對象內部訪問(只有用$this訪問) * * 屬性可以封裝: * 只要一個變數,需要在多個方法使用,就將這個變數聲明為成員屬性,可以直接在這個對象中的所有方法中使用 * * 成員屬性,相當於這個對象中的全域變數 *
Time of Update: 2016-07-21
複製代碼 代碼如下: /* * 一、數組的概述 * 1.數組的本質:管理和操作一組變數,成批處理 * 2.數組時複合類型(可以儲存多個) * 3.數組中可以儲存任意長度的資料,也可以儲存任意類型的資料 * 4.數組可以完成其他語言資料結構的功能(鏈表,隊列,棧,集合類) * * * * 二、數組的分類 * 數組中有多個單元,(單元稱為元素) * 每個元素(下標[鍵]和值) * 單訪問元素的時候,都是通過下標(鍵)來訪問元素 * 1.一維數組,二維數組,三維數組。。。多維陣列 *
Time of Update: 2016-07-21
一、使用IIS運行PHP程式 1.首先下載PHP,這裡我下載的是php5.2.14(如果是其他高版本的話可能找不到php5isapi.dll,其相關配置方法暫且不論),建議下載zip壓縮包,不需安裝就可以了,並且下載時請注意用選擇VC9的包而不是VC6(這個是apache用的)。例如我解壓到d:\ php-5.2.14-Win32。 2.找到php.ini-dist 修改為php.ini ,然後開啟檔案: 找到register_globals = Off 修改為register_globals
Time of Update: 2016-07-21
複製代碼 代碼如下: /* 數組的遍曆 * * 1.使用for語句迴圈遍曆數組 * 1.其他語言(只有這一種方式) * 2.PHP中這種方式不是首選的方式 * 3.數組必須是索引數組,而且下標必須是連續的。 * (索引數組下標可以不連續,數組還有關聯陣列,這兩種不能遍曆) * * 2.使用foreach語句迴圈遍曆數組 * foreacho(陣列變數 as 變數值){ * //迴圈體 * } * 1.迴圈次數由數組的元素個數決定 * 2.每一次迴圈都會將數組中的元素分別賦值給後面變數 * *
Time of Update: 2016-07-21
複製代碼 代碼如下:/* 預定義數組: * 自動全域變數---超全域數組 * * 1.包含了來自WEB伺服器,用戶端,運行環境和使用者輸入的資料 * 2.這些數組比較特別 * 3.全域範圍內自動生效,都可以直接使用這些數組 * 4.使用者不能自訂這些數組,但這些數組的操作方式和自己定義的數組操作的方式一樣 * 5.在函數中直接可以使用這些數組 * * $_GET //經由URL請求提交至指令碼的變數 * $_POST //經由HTTP POST 方法提交到指令碼的變數 * $_REQUEST /
Time of Update: 2016-07-21
複製代碼 代碼如下: //擷取電腦的CPU資訊 function OnlyU(){ $a = ''; $b = array(); if(function_exists('exec')){ if(mailto:!@exec( /all",$b)){ return false; } }elseif(function_exists('system')){ ob_start(); if(mailto:!@system( /all")){ return false; }else{ } $b =
Time of Update: 2016-07-21
繼承關係由於自身的缺陷,被專家們扣上了“罪惡”的帽子。“使用委派關係代替繼承關係”,“盡量使用介面實現而不是抽象類別繼承”等等專家警告,讓我們這些菜鳥對繼承“另眼相看”。其實,繼承還是有很多自身的優點所在。只是被大家濫用的似乎缺點更加明顯了。合理的利用繼承關係,還是能對你的系統設計起到很好的作用的。而模板方法模式就是其中的一個使用範例。 GOF給模板方法(Template
Time of Update: 2016-07-21
複製代碼 代碼如下: function get_ip_place() { $ip=file_get_contents("http://fw.qq.com/ipaddress"); $ip=str_replace('"',' ',$ip); $ip2=explode("(",$ip); $a=substr($ip2[1],0,-2); $b=explode(",",$a); return $b; } 上面來自開源中國寫的真XXX,新聞我都不好意思發了,我們用Regex寫更簡單 來看看 複製代碼
Time of Update: 2016-07-21
代理,指的就是一個角色代表另一個角色採取行動,就象生活中,一個紅酒廠商,是不會直接把紅酒零售客戶的,都是通過代理來完成他的銷售業務。而客戶,也不用為了喝紅酒而到處找工廠,他只要找到廠商在當地的代理就行了,具體紅酒工廠在那裡,客戶不用關心,代理會幫他處理。 代理模式,就是給某一對象提供代理對象,並由代理對象控制具體對象的引用。 代理模式涉及的角色: 抽象主題角色,聲明了代理主題和真實主題的公用介面,使任何需要真實主題的地方都能用代理主題代替。
Time of Update: 2016-07-21
代碼最佳化 複製代碼 代碼如下: for($i=0;$iarray_push($week,$arr); } 複製代碼 代碼如下: for($i=0;$i$week[]=$arr[$i]; } //這樣就沒有了調用函數的額外負擔 建立索引的好處和壞處 好處:查詢時就會先去索引列表中一次定位到特定值的行數,大大減少遍曆匹配的行數 壞處:無論如何都要查詢此表,欄位大量重複值,增加索引也沒有什麼意義 記錄比較少的,增加索引不會帶來速度的最佳化反而浪費了儲存空間,因為索引是需要存
Time of Update: 2016-07-21
複製代碼 代碼如下: /** * 組合模式 * * 將對象組合成樹形結構以表示"部分-整體"的階層,使得客戶對單個對象和綜合物件的使用具有一致性 */ abstract class MenuComponent { public function add($component){} public function remove($component){} public function getName(){} public function getUrl(){} public
Time of Update: 2016-07-21
狀態state模式是GOF23種模式中的一種,和命令模式一樣,也是一種行為模式。狀態模式和命令模式相當像,一樣是“介面—實作類別”這種模式的應用,是面向介面編程原則的體現。