php學習之路第三天

經過前兩天的學習,到這來,php基礎算是熟悉,可以進入真正在項目開發有用的東西了,當然不是說先前的就沒有用,那些基礎是每門語言必須的東西,相信做過jsp、asp開發web的朋友對會話並不陌生,這裏就不嘮叨了,直接給筆者在網上收集的資料。這裏涉及幾個內置全局數組。

有web開發經驗的人已看就會明白。



HP9個預定義超級全局數組
自動全局變量————-超全局數組


1、包含了來自web服務器,客戶端,運行環境和用戶輸入的數據相關的一些數組


2、這些數組比較特別


3、全局範圍內自動生效,都可以直接使用這些數組


4、用戶不能自定義這些數組,但這些數組的操作方式又和我們自己操作的方式一樣


 


$_GET               //經由Url請求提交至腳本的變量


$_GET超級全局變量包含使用GET方法傳遞的參數的有關信息。如果請求URL爲http://www.example.com /index.html?cat=apache&id=157, 就可以使用$_GET超級全局變量訪問如下變量:


$_GET[ 'cat' ] = "apache" ;


$_GET[ 'id' ] = "157" ;


默認情況下,要訪問通GET方法傳遞的變量,$_GET超級全局變量是唯一的途徑。不能用$cat、$id等方式來引用GET變量。


 


$_POST              //經由http  post 請求提交至腳本的變量


$_POST超級全局變量包含用POST方法傳遞的參數的有關信息。考慮如下用於請求用戶信息的表單:




< form caction="subscribe.php" method = "post"> 
    <p> 
    Email address : <br> 
    <input type="text" name="email" size="20" maxlength="so" value=""> 
    </p> 
    <p> 
    Password : <br> 
    <input type="password" name="pswd" size="20" maxlength="15" value=""> 
    </p> 
    <p> 
    <input type="submit" name="subscribe" value="subscribe!"> 
    </p> 
</form> 


通過腳本subscribe.php,就可以使用下面的POST變量:


$_POST[ 'email' ] = " [email protected] " ;


$_POST[ 'pswd' ] = "rainyday" ;


$_POST[ 'subscribe' ] = "subscribe!" ;


與$_GET一樣,在默認情況下,$_POST超級全局變量是訪問POST變量的唯一途徑。不能用$email、$pswd、$subscribe等方式引用POST變量。


 


$_REQUEST           //經由GET  POST   COOKIE機制提交的腳本變量,因此該數組不值得我們信任,儘量不去使用


$_REQUEST超級全局變量是一個全能選手,它記錄了通過各種方法傳遞給腳本的變量,特別是GET ,POST 和 COOKIE 。 這些變量的順序不依賴於它們在發送腳本中出現的順序,而是依賴於 variables_order 配置指令所指定的順序。建議少用這個超級變量,因爲它不夠安全。


 


$_FILES         //經由HTTP POST文件上傳而提交至腳本的變量


 $_FILES超級全局變量包含通過POST方法向服務器上傳的數據的有關信息。這個超級全局變量與其他的變量有所不同,它是一個二維數組,包含5個元素。第一個下標標示表單的文件上傳元素名;第二個下標是五個預定義下標之一,這些下標描述了上傳文件的某個屬性:


$_FILES[ 'upload-name' ][ 'name' ]; 從客戶端向服務器上傳文件的文件名


$_FILES[ 'upload-name' ][ 'type' ]; 上傳文件的MIME類型,這個變量是否賦值取決於瀏覽器的功能。


$_FILES[ 'upload-name' ][ 'size' ]; 上傳文件的大小(以字節爲單位);


$_FILES[ 'upload-name' ][ 'tmp_name' ]; 上傳之後,將此文件移到最終位置之前賦予的臨時名。


$_FILES[ 'upload-name' ][ 'error' ]; 上傳狀態碼。儘管這個變量的名爲 error ,但實際上在成功的情況下也會填寫這個變量。它有五個可能的值:


UPLOAD_ERR_OK 文件成功上傳


UPLOAD_ERR_INI_SIZE 文件大小超出了 upload_max_filesize 指令所指定的最大值。


UPLOAD_ERR_FORM_SIZE 文件大小超出了MAX_FILE_SIZE 隱藏表單域參數(可選)指定的最大值。


UPLOAD_ERR_PARTIAL 文件只上傳了一部分


UPLOAD_ERR_NO_FILE 上傳表單中沒有指定文件


 


$_COOKIE


$_COOKIE超級全局變量存儲了通過HTTP cookie傳遞到腳本的信息。這些cookie一般是由以前執行的PHP腳本通過PHP函數setcookie ( ) 設置的。例如,假設使用 setcookie ( )存儲了一個名爲 example.com、值爲ab2213的cookie。以後就可以通過調用$_COOKIE[ ' example.com' ]來獲得這個值。


 


$_SESSION


$_SESSION 超級全局變量包含與所有會話有關的信息。註冊會話信息能爲你提供便利,這樣就能在整個網站中引用這些會話信息,而無需通過GET或POST顯示的傳遞數據。


$_ENV        //執行環境提交腳本的變量


 


$_ENV超級全局變量提供PHP解析所在服務器環境的有關信息。此數組中的變量包括:


$_ENV[ 'HOSTNAME' ] 服務器的主機名


$_ENV[ 'SHELL' ] 系統 shell


 


$_SERVER  //變量有由web服務器設定的或直接和當前腳本的執行環境相關的


$_SERVER超級全局變量包含由web服務器創建的信息,它提供了服務器和客戶配置及當前請求環境的有關信息。根據服務器不同,$_SERVER中的變量值和變量個數會有差別,不過一般都可以找到CGI1.1規範[可以從美國國家超級計算機應用中心(http://hoohoo.ncsa.uiuc.edu/cgi/env.html)]中定義的變量。你會發現,這些變量在應用程序中都非常有用,其中包括如下幾項。:


$_SERVER[ 'HTTP_REFERER' ] ; 引導用戶到達當前位置的頁面的URL ;


$_SERVER[ 'REMOTE_ADDR‘ ] ; 客戶IP地址 ;


$_SERVER[ ’REQUEST_URI‘ ] ; URL的路徑部分。如果URL是http://www.example.com/blog/apache/index.html,那麼URI就是/blog/apache/index.html 。


$_SERVER[ 'HTTP_USER_AGENT' ] ; 客戶的用戶代理,一般會提供操作系統和瀏覽器的有關信息。


$GLOBAL  //只要和當前腳本有效的變量都在這裏,數組鍵名爲全局變量的名稱


$GLOBALS 超級全局變量數組可以認爲是超級全局變量的超集,包含全局作用域內的所有變量。執行下面的代碼可以查看$GLOBALS 中所有的變量。




$a=1111;


function  demo(){


$GLOBAL["a"];


}


print ' <pre>' ;  
print_r ($GLOBALS);  
print ' </pre>' ; 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章