Time of Update: 2016-07-21
1、單引號爆路徑 說明: 直接在URL後面加單引號,要求單引號沒有被過濾(gpc=off)且伺服器預設返回錯誤資訊。 Eg: www.xxx.com/news.php?id=149′ 2、錯誤參數值爆路徑 說明: 將要提交的參數值改成錯誤值,比如-1。單引號被過濾時不妨試試。 Eg: www.xxx.com/researcharchive.php?id=-1 3、Google爆路徑 說明: 結合關鍵字和site文法搜尋出錯頁面的網頁快照,常見關鍵字有warning和fatal error。注意,
Time of Update: 2016-07-21
檔案處理函數 1.檔案操作. 開啟檔案: 開啟指定的檔案時會返回相應的對象,若不存在指定的檔案,那麽可能會自動建立這個檔案。 resource fopen(string filename,string mode [,int use_include_path][,resource context]); filename 可以是包含檔案路徑的檔案名稱,也可以是某種協議給出的URL(開啟遠程檔案).為了避免系統切換帶來的麻煩,採用'/'作為路徑分隔字元.
Time of Update: 2016-07-21
include效能 複製代碼 代碼如下: include('include.php'); 當然這種方式並沒有錯誤,只不過在效率上它比下面的方式要稍稍差些: 複製代碼 代碼如下: include(realpath(dirname(_FILE_)).DIRECTORY_SEPARATOR.'include.php'); 這種方式我們可能需要輸入更多一些,但相對於前面那種需要PHP引擎去include_path 中迭代尋找所有名稱為'include.php'才能尋找到相應對象來說,dirname(
Time of Update: 2016-07-21
對象的主要三個特性 對象的行為:可以對 對象施加那些操作,開燈,關燈就是行為。 對象的形態:當施加那些方法是對象如何響應,顏色,尺寸,外型。 對象的表示:對象的表示就相當於身份證,具體區分在相同的行為與狀態下有什麼不同。 物件導向模型 物件導向的概念: oop(物件導向的編程)它能是其代碼更加簡潔易於維護並且具有更強的可重性 什麼是類:
Time of Update: 2016-07-21
複製代碼 代碼如下: class Foo { private $name = 'hdj'; public function getName(){ return $this->name; } } class Bar extends Foo { public $name = 'deeka'; } $bar = new Bar; var_dump($bar->name); var_dump($bar->getName()); 存取控制 對屬性或方法的存取控制,是通過在前面添加關鍵字
Time of Update: 2016-07-21
一、問題: 資料庫是MS SQLServer2000,要把SQLServer2000裡的一張表的資料匯入MySQL5,其中SQLServer2000表的欄位以簡體中文命名(強烈建議不要以中文做為欄位名)。其實操作就是對SQLServer查詢記錄,插入到MySQL裡。選擇的指令碼語言是PHP,PHP開啟MSSQL和MySQL擴充,對這兩個資料庫操作都是很容易的問題。
Time of Update: 2016-07-21
基本邏輯思路和.net的一樣,就是將通過實體類來進行配置換成了通過數組進行配置,邏輯比較簡單,根據條件判斷拼接分頁html。 有以下幾個簡單的功能: 1:支援相關按鈕的顯示與否配置 2:支援每頁數目,文本名稱,html標籤類名稱的自由配置 3:支援url重寫過的頁面(需自己在配置數組中添加重寫規則) 簡單吧,還是直接上代碼: 核心代碼:pager.class.php 複製代碼 代碼如下: class pager{ //分頁的參數配置 private $config=array(
Time of Update: 2016-07-21
複製代碼 代碼如下: $a=3; $b=6; if($a=5||$b=7){ $a++; $b++; } var_dump($a, $b); 陷阱一 把$a=5、$b=7看成了$a==5、$b==7 錯誤結果:3,6 陷阱二 運算子的優先順序,認為$a=5賦值成功$b=7沒執行 錯誤結果:6,7 正確理解 陷阱是運算子的優先,賦值運算子(=)的優先順序是最低的,所以正確理解應該是 $a=(5||$b=7) 正確結果:true,7 升級一下 變形一 複製代碼 代碼如下: $a=3; $b=6;
Time of Update: 2016-07-21
選好一種記住,以後需要使用的時候就可以直接使用,或者來本站查看本文也是可以滴。 複製代碼 代碼如下: //方法一: function extend_1($file_name) { $retval=""; $pt=strrpos($file_name, "."); if ($pt) $retval=substr($file_name, $pt+1, strlen($file_name) - $pt); return ($retval); } //方法二 function
Time of Update: 2016-07-21
那麼這個隨機名人名言的功能是如何?的呢? 其實很簡單,只需要一個字串變數,這裡面放所有要隨機展現的名人名言,然後用到explode函數分解成數組,再用rand隨機數產生一個值,輸出這個數組中的某一句。 直接上代碼: says.php 複製代碼 代碼如下: function random_str () { $poems="人生的價值,並不是用時間,而是用深度去衡量的。-- 列夫·托爾斯泰 三人行,必有我師焉。擇其善者而從之,其不善者而改之。——孔子 人生不是一種享樂,而是一樁十分沉重的工作。--
Time of Update: 2016-07-21
看了這篇PHP中file_exists與is_file,is_dir的區別的說法基本明白,PHP的 file_exists = is_dir + is_file。 寫程式驗證一下: 分別執行1000次,記錄所需時間。 檔案存在(目前的目錄) is_file:0.4570ms file_exists:2.0640ms 檔案存在(絕對路徑3層/www/hx/a/) is_file:0.4909ms file_exists:3.3500ms 檔案存在(絕對路徑5層/www/hx/a/b/c/) is_
Time of Update: 2016-07-21
資料庫中,存放文章的表中有“Tag”欄位,用來存放標籤。標籤之間用“,”分隔。比如“PHP,VB,隨筆”。 下面的實現代碼,將標籤從資料庫中搜出來,並格式化處理,使其以出現的次數為依據顯示出不同大小的文字串連。 其中的細節,不做解釋了! 觀念陳、方法笨、效率低的標籤雲的實現代碼如下: 複製代碼 代碼如下: /** * WNiaoBlog Tag Template ShowTag * * @package WNiaoBlog * * @subpackage Tag */ //Connect
Time of Update: 2016-07-21
一. 單例模式(Singleton) 如果應用程式每次包含且僅包含一個對象,那麼這個對象就是一單例. 用來替代全域變數. 複製代碼 代碼如下: require_once("DB.php"); class DatabaseConnection{ public static function get(){ static $db = null; if ( $db == null ) $db = new DatabaseConnection(); return $db; } private
Time of Update: 2016-07-21
很顯然file_exists是受了asp的影響,因為asp不但有fileExists還有folderExists,driverExists,那麼PHP中file_exists是什麼意思呢? PHP的 file_exists = is_dir + is_file 它既可以判斷檔案是否存在,又可以判斷目錄是否存在。但這樣一個全面的函數執行效率非常低,就像asp中request不指定是form,還是get,cookies,所以結論是: ◦如果要判斷目錄是否存在,請用獨立函數 is_dir(
Time of Update: 2016-07-21
網域名稱和cookie 偶然想到一個問題:www.g.cn能把cookie設定為.g.cn,那麼www.com.cn能設定把cookie設定為.com.cn嗎? 實驗結果:不能。因為瀏覽器知道www.com.cn的尾碼是.com.cn而不是.cn,所以禁止設定cookie。 因為瀏覽器內建了網域名稱尾碼列表。todo:如果以後出現新的尾碼,而老瀏覽器沒法更新列表,豈不是會允許設定cookie? extension尾碼頂層網域次層網域www.g.cn.cng.cn*.g.cnwww.com.cn.
Time of Update: 2016-07-21
1> if( "false" ) 等效於 if( true), 因為非Null 字元串是true 2> 檢查資料類型: is_array(); is_object(); is_string(); is_null(); is_integer(); 3> PHP5 引入類的類型提示(type hint),用來約束一個方法的參數類型(不是基礎資料型別 (Elementary Data Type),而是類):將類名放在需要約束的方法參數之前. 例如: function write(
Time of Update: 2016-07-21
在PHP開發中工作裡非常多使用到逾時處理到逾時的場合,我說幾個情境: 1. 非同步擷取資料如果某個後端資料來源擷取不成功則跳過,不影響整個頁面展現 2. 為了保證Web伺服器不會因為當個頁面處理效能差而導致無法訪問其他頁面,則會對某些頁面操作設定 3. 對於某些上傳或者不確定處理時間的場合,則需要對整個流程中所有逾時設定為無限,否則任何一個環節設定不當,都會導致莫名執行中斷 4. 多個後端模組(MySQL、Memcached、HTTP介面),為了防止單個介面效能太差,導致整個前面擷取資料太緩慢,
Time of Update: 2016-07-21
display_errors 錯誤回顯,一般常用語開發模式,但是很多應用在正式環境中也忘記了關閉此選項。錯誤回顯可以暴露出非常多的敏感資訊,為攻擊者下一步攻擊提供便利。推薦關閉此選項。 display_errors = On 開啟狀態下,若出現錯誤,則報錯,出現錯誤提示 dispaly_errors = Off 關閉狀態下,若出現錯誤,則提示:伺服器錯誤。但是不會出現錯誤提示 log_errors 在正式環境下用這個就行了,把錯誤資訊記錄在日誌裡。正好可以關閉錯誤回顯。 對於PHP開發人員來說,
Time of Update: 2016-07-21
UUID(Universally Unique Identifier),GUID都是希望在整個時空範圍內能產生唯一識別碼,這在分散式運算環境下是必要的. 然而,如果僅僅是想在一個受限定的局部環境下,想產生一個"局部唯一識別碼",使用UUID就是殺雞用牛刀,這個"局部唯一識別碼",我稱之為LUID(Local Unique Identifier) 比如我在用php開發網站程式時,為避免使用者同時多次開啟同一個網頁導致session名稱衝突問題, 就希望儲存的session不是$_SESSION['
Time of Update: 2016-07-21
複製代碼 代碼如下: /* UTF-8中文字元截斷程式 */ $str = "123這是測試字串"; $str1 = "()()"; echo subUTF8str($str,0,3).""; echo subUTF8str($str,0,4).""; echo subUTF8str($str1,0,4).""; echo subUTF8str($str1,0,10).""; function subUTF8str($str,$start=0,$length=80){ $cur_len = 0;