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
但是如果在utf-8編碼下,一個漢字是佔3個字元長度的,比如字串$str=”你好啊!!”; 如果你用strlen函數來判斷,長度是11,正好超過了varchar的長度,但實際上確不是這樣,如果直接到phpmyadmin裡面執行insert語句,這條字串是可以插入的! 對於資料庫來說,它的長度是5,那麼我們如何用PHP來得到這個長度呢?使用iconv_strlen()函數! echo iconv_strlen($str,'utf-8′);
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
比如說PECL裡有兩個Memcached的模組,Memcache和Memcached,目前大部分PHP環境裡使用的是名字裡不帶d的Memcache版本,這個版本釋出的比較早,是一個原生版本,與之對應的帶d的Memcached版本則是建立在libmemcached的基礎上,所以說Memcached版本的功能更全一些。安裝Memcached版本的PHP模組wget http://download.tangent.org/libmemcached-0.35.tar.gztar zxf
Time of Update: 2016-07-21
函數 bool array_multisort ( array &$arr [, mixed $arg = SORT_ASC [, mixed $arg = SORT_REGULAR [, mixed $...]]] ) 參數說明: 函數對多個數組或多維陣列進行排序 第一個參數是數組,隨後的每一個參數可能是數組,也可能是下面的排序次序標誌 SORT_ASC - 預設,按升序排列 SORT_DESC - 按降序排列 隨後可以指定排序的類型 SORT_REGULAR -
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
舉例說明: 在Windows環境下:原本在php4.3.0中運行正常的程式,在4.3.1中為何多處報錯,大體提示為:Notice:Undefined varialbe:變數名稱. 例如有如下的代碼: 複製代碼 代碼如下: if (!$tmp_i) { $tmp_i=10; } 在4.3.0中運行正常,在4.3.1中運行會提示Notice:Undefined varialbe:tmp_i 問題下下: 1.問題出在哪裡? 2.應如何修改這段代碼?
Time of Update: 2016-07-21
錯誤提示: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-21
/path/to/pkphp.com/script.php?ajax 在php指令碼中使用如下方法判斷: 複製代碼 代碼如下: if(isset($_GET['ajax'])) { ...這是一個ajax請求,然後... } else { ...這不是一個ajax請求,然後... } 通過傳遞_GET參數的方法簡單實現了網頁請求的判斷。但是如果需要這樣的功能,這個方法可能就有弊端,功能需求如下: 1.通過ajax請求的網頁與普通請求的網頁內容是不相同的
Time of Update: 2016-07-21
用戶端發送的請求類似這樣 複製代碼 代碼如下: $request = array('parameters00','parameters01'); 在用戶端的請求你可以制定參數的資料類型,你可以將每個參數單獨的放進一個數組,在數組的第二個位置制定參數的資料類型,類似這樣 複製代碼 代碼如下: $request = array( array('parameters00','string'), array('parameters01','boolean'), array('parameters02'
Time of Update: 2016-07-21
一、如何定義數組:在PHP中建立數組主要有兩種方式,下面就讓我們來看看如何建立一個數組 (1)直接給每個元素賦值的方法建立數組。 格式為:$arrayname[key]=value; 其中arrayname為數組的名字,key為數組的元素的鍵,value為元素的值。鍵可以是0,1,2,3這一類數字,也可以是字串。如下所示: 複製代碼 代碼如下: 1 2 //用1,2,3的數值作為數組的鍵 3 echo '數組$array1的索引值為:'; 4 $array1[1]='a'; 5 $array1[
Time of Update: 2016-07-21
Snoopy是什麼? (下載snoopy) Snoopy是一個php類,用來模仿web瀏覽器的功能,它能完成擷取網頁內容和發送表單的任務。 Snoopy的一些特點: * 方便抓取網頁的內容 * 方便抓取網頁的常值內容 (去除HTML標籤) * 方便抓取網頁的連結 * 支援代理主機 * 支援基本的使用者名稱/密碼驗證 * 支援設定 user_agent, referer(來路), cookies 和 header content(標頭檔) * 支援瀏覽器轉向,並能控制轉向深度 *
Time of Update: 2016-07-21
今天一個網友在群裡發了個題目不難,但是可能會錯 複製代碼 代碼如下: echo $a == 1 ? 'one' : $a == 2 ? 'two' : $a == 3 ? 'three' : $a == 4 ? 'foura' : 'other'; echo "\n"; 輸出結果是: 結果是:four 一開始想不明白,按照我的理解,應該是這樣的邏輯: echo ($a == 1 ? 'one' : ( $a == 2 ? 'two' : ( $a == 3 ? 'three' : ($a =
Time of Update: 2016-07-21
我們知道很多在網上下載的論壇或者個人部落格程式都有安裝的頁面,要製作這樣的安裝程式就需要用到sql檔案建立資料庫。 只對phpmyadmin匯出的sql檔案有效 複製代碼 代碼如下: $dbfile="test.sql"; $content=iconv("UTF-8","GB2312",file_get_contents($dbfile)); //擷取建立的資料 //去掉注釋 $content=preg_replace("/--.*\n/iU","",$content); //替換首碼
Time of Update: 2016-07-21
複製代碼 代碼如下: /** * 適配器模式 * * 將一個類的介面轉換成客戶希望的另外一個介面,使用原本不相容的而不能在一起工作的那些類可以在一起工作 */ // 這個是原有的類型 class OldCache { public function __construct() { echo "OldCache construct"; } public function store($key,$value) { echo "OldCache store"; } public function
Time of Update: 2016-07-21
複製代碼 代碼如下: /** * 單例模式 * * 保證一個類僅有一個執行個體,並提供一個訪問它的全域訪問點 * */ class Singleton { static private $_instance = null; private function __construct() { } static public function getInstance() { if(is_null(self::$_instance)) { self::$_instance = new