Time of Update: 2016-11-23
命名空間概述什麼是命名空間?從廣義上來說,命名空間是一種封裝事物的方法。在很多地方都可以見到這種抽象概念。例如,在作業系統中目錄用來將相關檔案分組,對於目錄中的檔案來說,它就扮演了命名空間的角色。具體舉個例子,檔案 foo.txt 可以同時在目錄/home/greg 和 /home/other 中存在,但在同一個目錄中不能存在兩個 foo.txt 檔案。另外,在目錄 /home/greg 外訪問 foo.txt 檔案時,我們必須將目錄名以及目錄分隔字元放在檔案名稱之前得到 /home/greg/
Time of Update: 2016-11-23
Example #1 定義多個命名空間,簡單組合文法<?php namespace MyProject; const CONNECT_OK = 1; class Connection { /* ... */ } function connect() { /* ... */ } namespace AnotherProject; const CONNECT_OK = 1; class Connection { /* ... */ }
Time of Update: 2016-11-23
在討論如何使用命名空間之前,必須瞭解 PHP 是如何知道要使用哪一個命名空間中的元素的。可以將 PHP 命名空間與檔案系統作一個簡單的類比。在檔案系統中訪問一個檔案有三種方式:相對檔案名稱形式如foo.txt。它會被解析為 currentdirectory/foo.txt,其中 currentdirectory 表示目前的目錄。因此如果目前的目錄是 /home/foo,則該檔案名稱被解析為/home/foo/foo.txt。相對路徑名形式如subdirectory/foo.txt。它會被解析為
Time of Update: 2016-11-23
需求來自一個營運的同事,對一個php檔案執行進行IP過濾,不方便直接設定管理員,於是需要直接在php檔案開頭進行IP的過濾。 IP過濾規則,可以有如下形式: 1.完整的IP地址 如:192.168.0.1 2.某一段IP 如:192.168.0.* 。 營運可以自訂IP黑白名單,由多個IP過濾規則群組成,儲存在數組中。通過編寫代碼,實現IP黑白名單功能。一個比較簡單的需求。 首先實現一個函數,功能是判斷ip是否符合某個ip過濾規則:function
Time of Update: 2016-11-23
PHP支援兩種抽象的訪問當前命名空間內部元素的方法,__NAMESPACE__ 魔術常量和namespace關鍵字。常量__NAMESPACE__的值是包含當前命名空間名稱的字串。在全域的,不包括在任何命名空間中的代碼,它包含一個空的字串。Example #1 __NAMESPACE__ 樣本, 在命名空間中的代碼<?php namespace MyProject; echo '"', __NAMESPACE__, '"';
Time of Update: 2016-11-22
curl_init — 初始化一個curl會話curl_copy_handle — 拷貝一個curl串連資源的所有內容和參數curl_errno — 返回一個包含當前會話錯誤資訊的數字編號curl_error — 返回一個包含當前會話錯誤資訊的字串curl_exec — 執行一個curl會話curl_getinfo — 擷取一個curl串連資源控制代碼的資訊curl_multi_init — 初始化一個curl批處理控制代碼資源curl_multi_add_handle —
Time of Update: 2016-11-22
require() 與 require_once() require_once():同一檔案只調用一次 通常放在 PHP 程式的最前面,PHP 程式在執行前,就會先讀入 require 所指定引入的檔案,如果出現錯誤是致命的。include() 與 include_once() include_once() :同一檔案只調用一次 可以放在 PHP 程式的任何一個位置,PHP 程式在執行到時,才會先讀入 include
Time of Update: 2016-11-23
在一個命名空間中,當 PHP 遇到一個非限定的類、函數或常量名稱時,它使用不同的優先策略來解析該名稱。類名稱總是解析到當前命名空間中的名稱。因此在訪問系統內部或不包含在命名空間中的類名稱時,必須使用完全限定名稱,例如:Example #1 在命名空間中訪問全域類<?php namespace A\B\C; class Exception extends \Exception {} $a = new Exception('hi'); // $a 是類
Time of Update: 2016-11-23
xml裡面的<![CDATA[ ]]>,雖然可以放各種各樣的特殊字元,但還是有些字元放不進去,因為xml允許的字元範圍是"#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]",也就是說\x00-\x08,\x0b-\x0c,\x0e-\x1f這三組字元是不允許出現的。所以需要過濾一下,過濾的方法也很簡單 Java代碼 str = str.replaceAll("[
Time of Update: 2016-11-23
Php檔案: <?php header("content-type:text/html;charset=utf-8"); //獲得表單提交的資料 $data=$_POST['data']; if(!empty($data)) //判斷資料是否獲得,不為空白則繼續執行 { foreach($data['tag'] as $v) //遍曆數組,獲得具體內容 {
Time of Update: 2016-11-23
pro_city.php 初始頁面:<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <title>省市二級聯動</title> </head> <body> <script
Time of Update: 2016-11-23
在寫PHP程式的時候經常遇到這個問題;包括使用header()函數,使用session()函數、cookies函數都有可能出次問題PHP程式報如下錯誤:Cannot modify header information - headers already sent by (output started at不能夠修改header infomation
Time of Update: 2016-11-23
<?php// 建立DOM$dom = new DOMDocument("1.0", "UTF-8");$dom -> formatOutput = true;// 建立元素$phpedu = $dom -> createElement("phpedu");// 添加元素到父節點$dom -> appendChild($phpedu);$title = $dom ->
Time of Update: 2016-11-22
在許多架構和MVC中都能夠看到PHP SPL的身影, PHP SPL 在很多實際應用都佔了很大的比重雙向鏈表<?php$obj = new SplDoublyLinkedList();$obj->push(1);$obj->push(2);$obj->push(3);$obj->unshift(10); //unshifit 替換雙向鏈表的首部$obj->rewind(); // 使用current
Time of Update: 2016-11-22
//時間轉換函式(把時間顯示人性化) function tranTime($time) { $rtime = date("m-d H:i",$time); $htime = date("H:i",$time); $time = time() - $time; if ($time < 60) { $str = '剛剛
Time of Update: 2016-11-22
在寫PHP程式的時候經常遇到這個問題;包括使用header()函數,使用session()函數、cookies函數都有可能出次問題PHP程式報如下錯誤: Cannot modify header information - headers already sent by (output started at 不能夠修改header infomation ,要解決這個錯誤需要明白兩點問題。
Time of Update: 2016-11-22
<?phpdefine('EARTH_RADIUS', 6378.137);//地球半徑define('PI', 3.1415926);/** * 計算兩組經緯度座標 之間的距離 * params :lat1 緯度1; lng1 經度1; lat2 緯度2; lng2 經度2; len_type (1:m or 2:km); * return m or km */function GetDistance($lat1, $lng1, $lat2, $lng2,
Time of Update: 2016-11-22
應用執行個體:在 商務中心的 管理供求資訊 頁面:利用標籤庫產生列表;步驟一:在項目設定檔Conf檔案夾下,建立一個taglibs.php檔案,將return array('html'=> '@.TagLib.TagLibHtml' , // 使用import方法支援的路徑格式);拷貝進去,這是定義本項目使用哪個標籤庫;步驟二:在Lib目錄下,建立 TagLib 檔案夾;Lib/TagLib/Tags/html.xml
Time of Update: 2016-11-22
<?php//Quick Sortfunction quickSort(array $array){ static $run = 0; $len = count($array); if($len <= 1) return $array; $arrleft=array(); $arrright=array(); $flag = $array[0]; for($i=1;$i<$len;$i++){
Time of Update: 2016-11-22
一般性的防注入,只要使用php的 addslashes 函數就可以了。 Php代碼 $_POST = sql_injection($_POST); $_GET = sql_injection($_GET); function sql_injection($content) { if (!get_magic_quotes_gpc()) { if (is_array($content)) { foreach