Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 委託模式 樣本 * * @create_date: 2010-01-04 */ class PlayList { var $_songs = array(); var $_object = null; function PlayList($type) { $object = $type."PlayListDelegation"; $this->_object = new $object(); } function addSong($location,$title)
Time of Update: 2016-07-29
使用yii架構的url路徑一般形如hostname/?r=xxxx/xxxx/xxxx&sdfs=dsfdsf 我們可以看到有時會使用protected目錄下的controller,有時會使用module中controller,具體是如何處理的呢,請看如下的分析: 以下代碼摘自yii架構核心代碼%Yiiroot%/framework/web/CWebApplication.php 複製代碼 代碼如下:================================================
Time of Update: 2016-07-29
模式定義:面板模式(Facade Pattern):外部與一個子系統的通訊必須通過一個統一的外觀對象進行,為子系統中的一組介面提供一個一致的介面,面板模式定義了一個高層介面,這個介面使得這一子系統更加容易使用。面板模式又稱為門面模式,它是一種對象結構型模式。 模式結構: 面板模式的就是讓client用戶端以一種簡單的方式來調用比較複雜的系統,來完成一件事情。 Subsystem: 複製代碼 代碼如下:class car { public function start() {
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 職責鏈模式 * * 為解除請求的寄件者和接收者之間的耦合,而使用多個對象都用機會處理這個請求,將這些對象連成一條鏈,並沿著這條鏈傳遞該請求,直到有一個對象處理它 * */ abstract class Handler { protected $_handler = null; public function setSuccessor($handler) { $this->_handler = $handler; } abstract function
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 解譯器 樣本 * * @create_date: 2010-01-04 */ class Expression { function interpreter($str) { return $str; } } class ExpressionNum extends Expression { function interpreter($str) { switch($str) { case "0": return "零"; case "1": return "一";
Time of Update: 2016-07-29
享元模式英文稱為“Flyweight Pattern”,我非常感謝將Flyweight Pattern翻譯成享元模式的那位強人,因為這個詞將這個模式使用的方式明白得表示了出來;如果翻譯成為羽量級模式或者蠅量級模式等等,雖然可以含蓄的表現出使用此模式達到的目的,但是還是沒有抓住此模式的關鍵。 享元模式的定義為:採用一個共用來避免大量擁有相同內容對象的開銷。這種開銷中最常見、直觀的就是記憶體的損耗。享元模式以共用的方式高效的支援大量的細粒度對象。
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 中介者模式 * * 用一個中介對象來封裝一系列的對象互動,使各對象不需要顯式地相互引用從而使其耦合鬆散,而且可以獨立地改變它們之間的互動 */ abstract class Mediator { abstract public function send($message,$colleague); } abstract class Colleague { private $_mediator = null; public function
Time of Update: 2016-07-29
但是如果在utf-8編碼下,一個漢字是佔3個字元長度的,比如字串$str=”你好啊!!”; 如果你用strlen函數來判斷,長度是11,正好超過了varchar的長度,但實際上確不是這樣,如果直接到phpmyadmin裡面執行insert語句,這條字串是可以插入的! 對於資料庫來說,它的長度是5,那麼我們如何用PHP來得到這個長度呢?使用iconv_strlen()函數! echo iconv_strlen($str,'utf-8′);
Time of Update: 2016-07-29
首先,確認伺服器硬體是否足夠支援當前的流量。 普通的P4伺服器一般最多能支援每天10萬獨立IP,如果訪問量比這個還要大, 那麼必須首先配置一台更高效能的專用伺服器才能解決問題 ,否則怎麼最佳化都不可能徹底解決效能問題。 其次,最佳化資料庫訪問。 前台實現完全的靜態化當然最好,可以完全不用訪問資料庫,不過對於頻繁更新的網站, 靜態化往往不能滿足某些功能。 緩衝技術就是另一個解決方案,就是將動態資料儲存到快取檔案中,動態網頁直接調用
Time of Update: 2016-07-29
array getimagesize ( string $filename [, array &$imageinfo ] ) 取得映像大小 resource imagecreatetruecolor ( int $x_size , int $y_size ) 建立一個真彩色映像 resource imagecreatefromjpeg ( string $filename ) 從 JPEG 檔案或 URL 建立一映像 bool imagecopyresized ( resource
Time of Update: 2016-07-29
URL跳轉代碼 1.代碼: 如儲存為aaa.php,可以實現aaa.php?url=www.baidu.com跳轉到百度的效果. 這個簡單的調用了預設的$_GET變數.以及php預設跳轉Location: 2.執行個體升級:增加if迴圈 代碼: 複製代碼 代碼如下:$url=$_GET["url"]; if (strlen($url >=3)){ header("Location:"."http://".$url); } ?> URL轉向頁
Time of Update: 2016-07-29
複製代碼 代碼如下://作者:遙遠的期待 //QQ:15624575 //演算法分析:1、必須是整數序列、2、如果整個序列不全是負數,最大子序列的第一項必須是正數,否則最大子序列後面的數加起來再加上第一項的負數,其和肯定不是最大的;3、如果整個序列都是負數,那麼最大子序列的和是0; //全負數序列很簡單,不舉例 $arr=array(4,-3,5,-2,-1,2,6,-2); function getmaxsum($arr){ $thissum=0; $maxsum=0; $start=0;//
Time of Update: 2016-07-29
然而,人無完人,插(件)無完插!Akismet也並非完美,最近, 我常在被Akismet評判為垃圾的留言中找到“好人”的留言,然而,有時時間長了就自動刪除了,損失珍貴的友情和留言。 別忘了修改代碼中的 __YOUR_AKISMET_KEY__, __YOUR_WEBSITE_URL__ and __YOUR_NAME__ http://www.script-tutorials.com/akismet-spam-protection/ index.php 複製代碼
Time of Update: 2016-07-29
複製代碼 代碼如下:/* 介面技術 * * 介面是一種特殊的抽象類別,抽象類別又是一種特殊的類 * * 介面和抽象類別是一樣的作用 * * 因為在PHP是單繼承的,如果使用抽象類別,子類實現抽象類別就不能再去繼承其他的類了 * * 如果既想實現一些規範,又想繼承其他類。就要使用介面。 * * 介面和抽象類別的對比 * * 1.作用相同,都不能建立對象,都需要子類去實現 * * 2.介面的聲明和抽象類別不一樣 * * 3.介面被實現方式不一樣 * *
Time of Update: 2016-07-29
複製代碼 代碼如下:/* * 封裝性:物件導向三大特性之一 * * 1.就是把對象的成員(屬性,方法)結合成一個獨立的相同單位,並儘可能隱藏對象的內部細節 * 存取權限修飾符 public protected private * private:私人的,用這個關鍵字修飾的成員,只能在對象內部訪問(只有用$this訪問) * * 屬性可以封裝: * 只要一個變數,需要在多個方法使用,就將這個變數聲明為成員屬性,可以直接在這個對象中的所有方法中使用 * * 成員屬性,相當於這個對象中的全域變數 *
Time of Update: 2016-07-29
:PHP代碼 複製代碼 代碼如下: error_reporting(E_ALL & ~E_NOTICE); ini_set('memory_limit', '2048M'); echo "選擇要壓縮的檔案或目錄:"; $fdir = opendir('./'); while($file=readdir($fdir)) { if($file=='.'|| $file=='..') continue; echo " "; if(is_file($file)) { echo "2 $file";
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 觀察者模式 * * 定義對象間的一種一對多的依賴關係,以便當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並自動重新整理 * 能夠便利地建立查看目標對象狀態的對象,並且提供與核心對象非耦合的指定功能 * 外掛程式系統 */ class Observerable { private $_observers = array(); public function registerObserver($observer) { $this->_observers[]
Time of Update: 2016-07-29
我們知道很多在網上下載的論壇或者個人部落格程式都有安裝的頁面,要製作這樣的安裝程式就需要用到sql檔案建立資料庫。 只對phpmyadmin匯出的sql檔案有效 複製代碼 代碼如下:$dbfile="test.sql"; $c //擷取建立的資料 //去掉注釋 $c/--.*\n/iU","",$content); //替換首碼 $c $carr=array(); $iarr=array(); //提取create preg_match_all("/Create table .*\(.*\).*
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 建造者模式 * * 將一個複雜物件的構建與它的表示分離,使用同樣的構建過程可以建立不同的表示 */ class Product { public $_type = null; public $_size = null; public $_color = null; public function setType($type) { echo "set product type"; $this->_type = $type; } public function
Time of Update: 2016-07-29
複製代碼 代碼如下: /** * 組合模式 * * 將對象組合成樹形結構以表示"部分-整體"的階層,使得客戶對單個對象和綜合物件的使用具有一致性 */ abstract class MenuComponent { public function add($component){} public function remove($component){} public function getName(){} public function getUrl(){} public