Time of Update: 2016-07-29
1.當將所有執行個體設為null,php會自動清除對象的引用。 2.建構子:__construct() 清除對象時自動執行的方法:__destruct() 也可以設定手動清除對象的方法:destroy或者clean_up 3.對象中的三種變數範圍:public、private和protected。 4.對象中的常量屬性可以使用const關鍵字,然後在對象外部以“對象名::屬性名稱”的格式引用,在對象內部以“self::屬性名稱”的格式引用。 5.在整個對象所有執行個體中通用的屬性,就是靜態屬性,
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
例如部落格的展示窗 複製代碼 代碼如下:/********************************************** * Filename : img.php * Author : freemouse * web : www.cnphp.info * email :freemouse1981@gmail.com * Date : 2010/12/27 * Usage: * * ***********************************************/
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
因此,我們主要解決的思路是效驗session ID的有效性. 以下為引用的內容: 複製代碼 代碼如下:if(!isset($_SESSION['user_agent'])){ $_SESSION['user_agent'] =$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT']; } /* 如果使用者session ID是偽造 */ elseif ($_SESSION['user_agent'] != $_SERVER['REMOTE_ADDR'
Time of Update: 2016-07-29
複製代碼 代碼如下:#!/usr/local/bin/php -q author:freemouse // 下面是說明. print ("本程式用於合并2張 640x480大小的.\n"); print ("圖片,並將其轉化為一張 400x300 大小的圖片\n"); print ("需要指定存放合成前圖片(a.jpg,b.jpg)的預設目錄\n"); print ("產生的圖片將會儲存為c.jpg\n"); //預設目錄,自己編輯吧^_^
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
這貨是從 Martin 大神的《公司專屬應用程式架構模式》中學到的,輔助 PHP 動態語言的特性,可以比 Java 輕鬆很多的實現消極式載入(LazyLoad)。基本原理是通過一個虛代理(Virtual Proxy)做預留位置,一旦訪問代理對象的某成員(方法或屬性),載入就被觸發。 不過我實現的這個版本有局限性: 只適用於對象,無法代理數組等基礎資料型別 (Elementary Data Type)(需要用 ArrayObject 一類的內建對象封裝)
Time of Update: 2016-07-29
複製代碼 代碼如下:class Controller_Jobs extends Controller_Base{ public function before(){ parent::before(); if(Request::$protocol != "cli"){ die("Only cli allowed!\n"); } } public function after(){ parent::after(); //do some cleaning tasks } private
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
session_unset() 釋放當前在記憶體中已經建立的所有$_SESSION變數,但不刪除session檔案以及不釋放對應的session id session_destroy() 刪除目前使用者對應的session檔案以及釋放session id,記憶體中的$_SESSION變數內容依然保留 因此,釋放使用者的session所有資源,需要順序執行如下代碼: 複製代碼 代碼如下:$_SESSION['user'] = 'lowell'; session_unset();
Time of Update: 2016-07-29
複製代碼 代碼如下:yum -y install openssl /usr/local/bin/是php的安裝目錄 切換到php安裝目錄的etx/openssl目錄 cd /root/soft/php-5.2.8/ext/openssl 複製代碼 代碼如下:/usr/local/bin/phpize Cannot find config.m4. Make sure that you run '/usr/local/bin/phpize' in the top level source
Time of Update: 2016-07-29
複製代碼 代碼如下:/* PHP物件導向的程式設計 * * PHP5 * * 數組和對象:都屬於PHP的複合類型(一個變數可以儲存多個單元) * * 對象比數組更強大,不僅可以儲存多個資料,還可以將函數存在對象中 * * 對象的三大特性:封裝、繼承、多態 * * 物件導向編程(oop) //符合軟體工程中的 重用性 靈活性 擴充性 * * 物件導向和面向過程之間的區別 * * 最小的單位:函數 //面向過程 * 最小的單位:對象 //物件導向 * * 什麼是對象
Time of Update: 2016-07-29
memcache的官方首頁:http://pecl.php.net/package/memcachememcached的官方首頁:http://pecl.php.net/package/memcached以下是我安裝Memcached版本的PHP模組的過程記錄:wget http://download.tangent.org/libmemcached-0.48.tar.gztar zxf libmemcached-0.48.tar.gzcd
Time of Update: 2016-07-29
一、使用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-29
使用mvc開發模式是為了什嗎?? MVC是一個設計模式,它強制性的使應用程式的輸入、處理和輸出分開。使用MVC應用程式被分成三個核心組件:模型、視圖、控制器。它們各自處理自己的任務。 我們有必要嚴格區分mvc的三層模式模式嗎? m與c的跨界使用更有利於快速開發。 在我使用的架構中 m與c可以跨界使用,並不嚴格區分。有時候很想直接在c裡處理m的事,因為業務的資料處理並不多見,也許只有一次。 這樣在m裡面寫個函數, 再用c調用,變得複雜,這與php快速開發理念相悖。 我們需要的什嗎? 1.視圖分離