Time of Update: 2016-07-21
比如下面的程式: 複製代碼 代碼如下: $arr = array('apple','banana','cat','dog'); unset($arr[2]); print_r($arr); ?> 程式運行結果: 複製代碼 代碼如下: Array ( [0] => apple [1] => banana [3] => dog ) 但是這種方法的最大缺點是沒有重建數組索引,就是說,數組的第三個元素沒了。 經過查資料後,原來PHP提供了這個功能,只不過很間接。這個函數是array_splice()
Time of Update: 2016-07-21
php表單在提交之後再後退,表單的內容預設是被清空的(使用session_start的時候), 解決方案是在session_start() 之後,字元輸出之前寫上 複製代碼 代碼如下: header("Cache-control: private"); 網頁的緩衝是由HTTP訊息頭中的“Cache-control”來控制的,常見的取值有private、no- cache、max-age、must-revalidate等,預設為private。其作用根據不同的重新瀏覽方式分為以下幾種情況: (1
Time of Update: 2016-07-21
一、冒泡排序法 說明:找到最大的數,排列到最後面,然後繼續找 例: 複製代碼 代碼如下: $arr = array(3,5,-1,0,2); for($i=0;$ifor($j=0;$jif($arr[$j]>$arr[$j+1]){ $temp = $arr[$j]; $arr[$j]=$arr[$j+1]; $arr[$j+1]=$temp; } } } 理解: 3,5,-1,0,2 //從第一個數開始往後比較,如果比後面的數大則與後面的數調位置 //第一次,3小於5,那麼不變
Time of Update: 2016-07-21
一、apache server安全性設定 1、以Nobody使用者運行 一般情況下,Apache是由Root 來安裝和啟動並執行。如果Apache Server進程具有Root使用者特權,那麼它將給系統的安全構成很大的威脅,應確保Apache Server進程以最可能低的許可權使用者來運行。通過修改httpd.conf檔案中的下列選項,以Nobody使用者運行Apache 達到相對安全的目的。 User nobody Group# -1 2、ServerRoot目錄的許可權
Time of Update: 2016-07-21
介面在php只能起到約束類的定義作用,雖不像c#/java那麼直觀,但基於oop的封裝要求,使用介面可以提高程式的可擴充性,如實現代理設計模式。 複製代碼 代碼如下: //人類介面 interface IHuman { function GetName(); } //男人類,實現人類介面 class ManClass implements IHuman { //擷取姓名方法 public function GetName() { return "I'm man.".""; } }
Time of Update: 2016-07-21
面象對向的三大特點:封裝性、繼承性、多態性 首先簡單理解一下抽象:我們在前面定義一個類的時候,實際上就是把一類事物共有的屬性和行為提取出來,形成一個物理模型(模版),這種研究問題的方法稱為抽象一、封裝性 封裝就是把抽取出來的資料和對資料的操作封裝在一起,資料被保護在內部,程式的其他部分只有被授權的操作(方法)才能對資料進行操作。 php提供了三種存取控制修飾符 public 表示全域,本類內部,類外部,子類都可以訪問 protected 表示受保護的,只有本類或子類可以訪問 private
Time of Update: 2016-07-21
環境: - Apache 2.2.6 - PHP 5.2.5 - SQL Server 2005 - Windows XP SP2 步驟: 1. 首先按通常做法配置好PHP5串連MS SQL Server 2. 下載正確版本的 ntwdblib.dll (2000.80.194.0),注意這個版本號碼,不是這個版本的dll 不起作用啊,剛開始搞了好久才發現這個問題,切記。。。 地址: http://www.jb51.net/dll/ntwdblib.dll.html 3. 覆蓋 apache2.
Time of Update: 2016-07-21
一、錯誤處理 異常處理: 意外,是在程式運行過程中發生的意料這外的事,使用異常改變指令碼正常流程 PHP5中的一個新的重要特性 複製代碼 代碼如下: if(){ }else{ } try { }catch(異常對象){ } 1. 如果try中代碼沒有問題,則將try中代碼執行完後就到catch後執行 2. 如果try中代碼有異常發生,則拋出一個異常對象(使用throw),拋出給了catch中的參數, 則在try中代碼就不會再繼續執行下去 直接跳轉到catch中去執行, catch中執行完成,
Time of Update: 2016-07-21
深入瞭解 register_globals dedecms 裡強制限制了register_globals 由於register_globals設定控制PHP變數存取範圍,如果開啟會引起不必要的安全問題,所以這裡對其進行了強制關閉,如果站長的空間不支援,可以採用以下幾種辦法進行修改,供廣大站長參考: *如果是獨立伺服器的使用者可以修改php設定檔中的php.ini,將register_globals=On改為register_globals=Off,然後重啟Apache.
Time of Update: 2016-07-21
複製代碼 代碼如下: //變數注意區分數字 "0" 和 字元"O" $OOO000000=urldecode('%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64'); // 解碼已編碼的 URL 字串, 解碼結果是 fg6sbehpra4co_tnd $OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5}; //然後把 解碼後的字元分別 取得 4, 9, 3, 5
Time of Update: 2016-07-21
例: 複製代碼 代碼如下: $a = fopen('test.txt','r'); //這裡並沒有對檔案進行判斷就開啟了,如果檔案不存在就會報錯 ?> 那麼正確的寫法應該如下: 複製代碼 代碼如下: if(file_exists('test.txt')){ $f=fopen('test.txt','r'); //使用完後關閉 fclose($f); } ?> 一、PHP錯誤處理的三種方式A、簡單的die()語句; 等價於exit(); 例: 複製代碼 代碼如下:
Time of Update: 2016-07-21
複製代碼 代碼如下: $arr = array('a','b','c','d'); unset($arr[1]); print_r($arr); ?> print_r($arr)之後,結果卻不是那樣的,最終結果是 Array ( [0] => a [2] => c [3] => d 那麼怎麼才能做到缺少的元素會被填補並且數組會被重新索引呢?答案是array_splice(): 複製代碼 代碼如下: $arr = array('a','b','c','d');
Time of Update: 2016-07-21
欄位是用於描述類的麼個方面的性質。 欄位是用於描述類的某個方面的性質。它與一般的PHP 變數非常相似,只是有一些細微的差別,本節將介紹這些差別。這一節還將討論如何聲明和使用欄位,下一節則介紹如何使用欄位的範圍來進行訪問限制。 聲明欄位 欄位聲明的有關規則與變數聲明的規則非常類似;實際上,可以說沒有區別。因為PHP 是鬆散類型的語言,欄位甚至不需要聲明;可以由類對象同時建立和賦值,但很少會這樣做。相反,常見的做法是在類開始處聲明欄位。此時可以為欄位賦初值。樣本如下: 複製代碼 代碼如下:
Time of Update: 2016-07-21
一、抽像類(abstract) 在我們實際開發過程中,有些類並不需要被執行個體化,如前面學習到的一些父類,主要是讓子類來繼承,這樣可以提高代碼複用性 文法結構: 複製代碼 代碼如下: abstract class 類名{ 屬性 $name; 方法(){} //方法也可以為abstract 修飾符 function 方法名(){} } 例: 複製代碼 代碼如下: abstract class animal{ public $name; public $age;
Time of Update: 2016-07-21
例如,員工管理應用程式可能包括一個EmPloyee 類。然後可以用這個類來建立和維護特定執行個體,比如Gonn和Sally。 根據預定義的類建立對象常稱為類的執行個體化(class instantiation)。 對象使用new關鍵字建立,如下: 複製代碼 代碼如下: $employee = new Employee(); 建立對象之後,這個剛執行個體化的對象就具有了類中定義的所有性質和行為。 如何執行個體化對象
Time of Update: 2016-07-21
文法sprintf(format,arg1,arg2,arg++)參數描述format必需。轉換格式。arg1必需。規定插到 format 字串中第一個 % 符號處的參數。arg2可選。規定插到 format 字串中第二個 % 符號處的參數。arg++可選。規定插到 format 字串中第三、四等等 % 符號處的參數。說明參數 format 是轉換的格式,以百分比符號 ("%") 開始到轉換字元結束。下面的可能的 format 值:%% - 返回百分比符號 %b - 位元 %c - 依照
Time of Update: 2016-07-21
複製代碼 代碼如下: // define constannts for input reading define('INPUT_GET', 0x0101); define('INPUT_POST', 0x0102); define('INPUT_GPC', 0x0103); /** * Read input value and convert it for internal use * Performs stripslashes() and charset conversion if
Time of Update: 2016-07-21
雖然都會在這些程式前增加一些判斷和限制。但除了庫檔案,還有臨時檔案,模板檔案等這些檔案本來就不應該被人直接通過 web 訪問到的。無論從安全性還是代碼管理方面,把不能訪問的檔案存放到web目錄下。 為什麼會有這樣的問題?回到以前,大部分的網站還是放到虛擬機器主機上,而且ftp的根目錄直接就是web的根目錄。為了適應這樣的情況。像 phpbb, vb, discuz, ofstar的代碼也只能把庫檔案直接存放到同一級的目錄下。
Time of Update: 2016-07-21
今天在家啟動PHP環境的時候,突然發現不能載入php_mysqli.dll了,網上找了一圈,沒有解決方案! 在群裡面受一哥們兒的啟發,竟然解決了,如果你的問題還沒有解決,請按下面的方法試試! apache下比如我的apache裝在D盤,目錄是D:/severs/apache PHP的目錄是D:/servers/php5 這樣,把D:/servers/php5/libmysql.dll拷貝到D:/servers/apache/bin這個目錄下面
Time of Update: 2016-07-21
思維導圖 介紹 前幾篇系列文章,我比較關注的是,但是我覺得我還是沒有說清楚,我自己也有很多不理解的地方,而且這篇是我的第一篇這方面的文章,有很多的紕漏,所以我會經常性的去做修改,如果大家有好的意見不妨告知一、二。 今天談得是“介面”,此介面非“Interface”,而是一個統稱。我們一般可以把供別人使用的函數或者url(一般是用於提供資料)叫介面。——可能還有別的意思,畢竟我現在還屬於“菜鳥”,如果有理解上的錯誤,請指正。