Time of Update: 2016-07-21
1、普遍緩衝技術: 資料緩衝:這裡所說的資料緩衝是指資料庫查詢PHP緩衝機制,每次訪問頁面的時候,都會先檢測相應的快取資料是否存在,如果不存在,就串連資料庫,得到資料,並把查詢結果序列化後儲存到檔案中,以後同樣的查詢結果就直接從緩衝表或檔案中獲得。 用的最廣的例子看Discuz的搜尋功能,把結果ID緩衝到一個表中,下次搜尋相同關鍵字時先搜尋緩衝表。
Time of Update: 2016-07-21
對象的賦值與複製: 賦值:通過“ = ”運算子多載User a(10),b;b = a;複製:調用複製建構函式User b;User a(b);或者User a = b;//相當於User a(b);與賦值的區別,賦值是對一個已經存在的對象進行賦值(已經實現定義了被賦值的對象),而複製是從無到有建立一個新的對象,並使它與已有的對象相同。淺複製與深複製:
Time of Update: 2016-07-21
1.原廠模式 主要作用是降低耦合度。 複製代碼 代碼如下: abstract class Operation{ abstract public function getValue($num1,$num2); public function getAttr(){ return 1; } } class Add extends Operation{ public function getValue($num1, $num2){ return $num1+$num2; } } class Sub
Time of Update: 2016-07-21
寫採集必用的函數,URL補全函數,也可叫做FormatUrl。 寫此函數作用就是為了開發採集程式,採集文章的時候會經常遇到頁面裡的路徑是 “相對路徑” 或者 “絕對根路徑” 不是“絕對全路徑”就無法收集URL。 所以,就需要本功能函數進行對代碼進行格式化,把所有的超連結都格式化一遍,這樣就可以直接收集到正確的URL了。 路徑知識普及 相對路徑:“../” “./” 或者前面什麼都不加 絕對根路徑:/path/xxx.html
Time of Update: 2016-07-21
動畫中的原代碼如下: 複製代碼 代碼如下: VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "tw" Attribute
Time of Update: 2016-07-21
Erlang的比較子 opDescription==等於/=不等於==大於等於>大於=:=精確的等於=/=精確的不等於等於和精確等於的區別: 如果要比較兩個數,如果兩個數之間是不同的類型,比如float和int那麼,==操作會首先把兩個數字轉換成相同的相同類型。舉例: 1> 1==1.0. true 2> 1=:=1.0. false 所以一般推薦用精確等於去比較 比較子的大小層級: number 3> 1 > a. false opDescriptionArgument type+
Time of Update: 2016-07-21
(注意不是用 header ,js 等方法做的用戶端跳轉) 複製代碼 代碼如下: function server_transfer($dest) { global ...; // 把希望在新頁面中用到的本頁變數或者自訂的全域變數列在這裡 include $dest; // 運行新指令碼 exit; // 退出本指令碼 } 注意: 1. 如果跳轉之前輸出的任何資料都會在新頁面中顯示,除非使用 ob_start 緩衝,可以在跳轉之前清空,這樣就互不影響了. 2.
Time of Update: 2016-07-21
用到的函數: str_split:把字串分割到數組中。類似的函數explode() 函數把字串分割為數組。array_count_values:用於統計數組中所有值出現的次數。arsort:對數組進行逆向排序並保持索引關係。主要用於對那些單元順序很重要的結合數組進行排序。$str="asdfgfdas323344##$\$fdsdfg*$**$*$**$$443563536254fas";//任意長度字串 複製代碼 代碼如下: $arr=str_split($str);
Time of Update: 2016-07-21
如果我們想知道某個方法被誰調用了? debug_print_backtrace可以解決debug_print_backtrace() 可以列印出一個頁面的調用過程 , 從哪兒來到哪兒去一目瞭然. 不過這是一個PHP5的專有函數,好在pear中已經有了實現, http://pear.php.net/package/PHP_Compat 測試代碼 複製代碼 代碼如下: class a{ function say($msg) { echo "msg:".$msg; echo
Time of Update: 2016-07-21
複製代碼 代碼如下: class Crypt3Des { private $key = ""; private $iv = ""; /** * 構造,傳遞二個已經進行base64_encode的KEY與IV * * @param string $key * @param string $iv */ function __construct ($key, $iv) { if (empty($key) || empty($iv)) { echo 'key and iv is not valid';
Time of Update: 2016-07-21
複製代碼 代碼如下: /** * 作者:胡睿 * 日期:2012/07/21 * 電郵:hooray0905@foxmail.com */ class HRDB{ protected $pdo; protected $res; protected $config; /*建構函式*/ function __construct($config){ $this->Config = $config; $this->connect(); } /*資料庫連接*/ public function
Time of Update: 2016-07-21
多的不說,直接上代碼: 複製代碼 代碼如下: ignore_user_abort(true); //設定用戶端中斷連線時是否中斷指令碼的執行 set_time_limit(0); $file = '/tmp/ignore_user.txt'; if(!file_exists($file)) { file_put_contents($file); } if(!$handle = fopen($file,'a+b')){ echo "not open file :".$file; exit; } $
Time of Update: 2016-07-21
哈哈,會用只是初級階段,要瞭解原理是什麼,這樣才能更好去運用,費話不多說 傳值:是把實參的值賦值給行參 ,那麼對行參的修改,不會影響實參的值 傳引用 :真正的以地址的方式傳遞參數傳遞以後,行參和實參都是同一個對象,只是他們名字不同而已對行參的修改將影響實參的值 說明: 傳值:根copy是一樣的。打個比方,我有一橦房子,我給你建築材料,你建了一個根我的房子一模一樣的房子,你在你的房子做什麼事都不會影響到我,我在我的房子裡做什麼事也不會影響到你,彼此獨立。
Time of Update: 2016-07-21
複製代碼 代碼如下: //輸出: aaaa,bbbb,cccc,dddd,eeee,ffff,gggg,hhhh,iiii,jjjj,kk kk,ll ll //file.php內容: aaaa cccc dddd eeee ffff gggg hhhh iiii jjjj kk kk ll ll //file.php替換空格(x)、Tab(T)效果 aaaa TTTT cccc ddddT xxxxxxxxxxxT eeeexxxxxxxxxx ffff gggg hhhhxxxxxxxx
Time of Update: 2016-07-21
1. 合并數組 array_merge()函數將數組合并到一起,返回一個聯合的數組。所得到的數組以第一個輸入數組參數開始,按後面數組參數出現的順序依次迫加。其形式為: 複製代碼 代碼如下: array array_merge (array array1 array2…,arrayN) 這個函數將一個或多個數組的單元合并起來,一個數組中的值附加在前一個數組的後面。返回作為結果的數組。
Time of Update: 2016-07-21
從5.2版本開始,PHP原生提供json_encode()和json_decode()函數,前者用於編碼,後者用於解碼。 一、json_encode() 該函數主要用來將數組和對象,轉換為json格式。先看一個數群組轉換的例子: $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr); 結果為 {"a":1,"b":2,"c":3,"d":4,"e":5} 再看一個對象轉換的例子: 複製代碼
Time of Update: 2016-07-21
php 裡面有個 system 方法, 可以調用系統命令。 先建立一個指令碼(比喻 /root/reboot_server.sh ),重啟用的。 複製代碼 代碼如下: #!/bin/bash reboot 再給他賦予許可權 4755 chown root:root /root/reboot_server.sh chmod 4755 /root/reboot_server.sh chmod 4777 /sbin/reboot 再在 php 裡, 想辦法做如下調用 複製代碼 代碼如下:
Time of Update: 2016-07-21
php的內建函數exec,system都可以調用系統命令(shell命令),當然還有passthru,escapeshellcmd等函數。 在很多時候利用php的exec,system等函數調用系統命令可以協助我們更好更快的完成工作。比如前二天筆者在批量處理.rar檔案時exec就幫我了大忙了。 今天整理一下常用的調用系統函數發出來和大家分享經驗。 注意:要想使用這二個函數php.ini中的安全模式必須關閉,要不然為了安全起見php是不讓調用系統命令的。 先看一下php手冊對這二個函數的解釋:
Time of Update: 2016-07-21
php版 複製代碼 代碼如下: set_time_limit(0); $path = 'D:/Hosting'; $somefile = $_GET['key']; $logfile = 'D:/Hosting/6668835/html/images/ennumdir.txt'; if (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="My Realm"'); header('HTTP/1.0
Time of Update: 2016-07-21
一、數組處理函數: 醉感覺:數組處理函數在PHP開發中非常常見,學習好數組處理函數至關重要.數組處理函數在實際應用中涉及到:數組的建立,字串於數組的相互轉換,數組轉XML,數組轉JSON.數組的檢測.數組的合并於分割.數組的數目.擷取數組中的所有值,擷取數組中的所有索引值[下標] 1.建立數組: $new = array(); 2. implode(分隔,str) 把數組值資料按指定字元串連起來 複製代碼 代碼如下: $arr =