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
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
複製代碼 代碼如下:/** * 冒泡排序 bubble sort * * 原理:多次迴圈進行比較,每次比較時將最大數移動到最上面。每次迴圈時,找出剩餘變數裡的最大值,然後減小查詢範圍。這樣經過多次迴圈以後,就完成了對這個數組的排序 */ function sort_bubble($list) { $len = count($list); if(empty($len)) return $list; for($i = 0;$i { for($j = $i + 1; $j { $flag = '';
Time of Update: 2016-07-29
1.1 第一個php 複製代碼 代碼如下: My First PHP Program echo "Hello Everybody!"; ?> 附加:phpinfo()函數的用法 1.2 輸入php指令碼 1.2.1 標示php程式碼片段落 1.2.2語句和注釋 /* */ // # # 1.2.3 php和html混合 1.3如何儲存資料 1.4 輸入php的基礎資料型別 (Elementary Data Type) 1.4.1
Time of Update: 2016-07-29
今天看到幾個有關PHP的符號。一個是@,這個加在一個變數的前面,是為了抑制PHP解譯器報錯,也就是說即使出了錯也不會顯示出來。 還有一個更重要的符號PHP的範圍解析操作符(::) 在沒有聲明任何執行個體的情況下訪問類中的函數或者基類中的函數和變數很有用處。而 :: 運算子即用於此情況。 複製代碼 代碼如下:class A { function example() { echo "I am the original function A::example().\n"; } } class B
Time of Update: 2016-07-29
複製代碼 代碼如下:/** * 三元組 Triplet * */ class Triplet { private $_data = null; // 初始化三元組 public function init($val1,$val2,$val3) { $this->_data[0] = $val1; $this->_data[1] = $val2; $this->_data[2] = $val3; return true; } // 銷毀三元組 public function destroy() {
Time of Update: 2016-07-29
錯誤提示:Error: Can't create/write to file 'C:\WINDOWS\TEMP\#sql_738_0.MYD' (Errcode: 17)Errno.: 1 問題分析:1、C:\Windows\TEMP 檔案夾許可權不夠,至少也要給出 USERS 組的可讀可寫入權限;2、C:\Windows\TEMP 檔案夾的磁碟滿了,檔案寫不進去了,清空 TEMP 檔案夾;3、第三方限制(如殺毒軟體的限制)1)你的伺服器裝了 MCAFEE 殺毒軟體,它的訪問保護禁止了
Time of Update: 2016-07-29
/path/to/pkphp.com/script.php?ajax 在php指令碼中使用如下方法判斷: 複製代碼 代碼如下:if(isset($_GET['ajax'])) { ...這是一個ajax請求,然後... } else { ...這不是一個ajax請求,然後... } 通過傳遞_GET參數的方法簡單實現了網頁請求的判斷。但是如果需要這樣的功能,這個方法可能就有弊端,功能需求如下: 1.通過ajax請求的網頁與普通請求的網頁內容是不相同的
Time of Update: 2016-07-29
用戶端發送的請求類似這樣 複製代碼 代碼如下:$request = array('parameters00','parameters01'); 在用戶端的請求你可以制定參數的資料類型,你可以將每個參數單獨的放進一個數組,在數組的第二個位置制定參數的資料類型,類似這樣 複製代碼 代碼如下:$request = array( array('parameters00','string'), array('parameters01','boolean'),
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