站長資訊網
        最全最豐富的資訊網站

        php全局數組有哪些

        php全局數組有9個:1、“$GLOBALS”,是由所有已定義的全局變量組成的數組;2、“$_SERVER”,是包含諸如頭信息、路徑和腳本位置的數組;3、“$_COOKIE”,由會話數據組成的數組;4、“$_GET”;5、“$_ENV”等。

        php全局數組有哪些

        本教程操作環境:windows7系統、PHP7.1版、DELL G3電腦

        php全局數組

        php全局數組全稱“超全局數組”或“超全局變量”,是PHP中特殊定義的數組變量,之所以稱為超全局數組是因為這些數組在腳本中的任何地方、任何作用域內都可以訪問,如函數、類、文件等。

        超全局數組變量是在全部作用域中始終可用的內置變量。

        PHP中的超全局數組包括以下9個:

        • $GLOBALS:包含一個引用指向每個當前腳本的全局變量范圍內有效的變量。該數組的鍵名為全局變量的名稱。

        • $_SERVER:顯示或獲取服務器的相關信息;

        • $_GET:把數據通過地址欄傳遞到服務器,這是方式必須是$_GET方式傳遞;

        • $_POST:通過表單發送的數據必須是POST方式;

        • $_REQUEST:包含上面兩種數據傳遞方式(POST和GET);

        • $_COOKIE:處理客戶端的會話數據;

        • $_SESSION:處理服務器端的會話數據;

        • $_FILES:上傳文件需要用到的數組;

        • $_ENV: 執行環境提交至腳本的變量

        $_GET

        • 原理
          php全局數組有哪些
        • 使用一:瀏覽器通過超鏈接傳送信息給服務器(默認是GET)
        <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> //注意:信息如何傳遞!!! <a href="1.php?city=XI'AN&name=tan">數據</a> </body> </html>
        <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> <?php 	echo "<pre>";  	echo print_r($_GET); 	echo "</pre>"; 	echo $_GET['name']; ?> </body> </html>
        • 注意:IE5.5和IE6存在中文奇數亂碼的問題,解決?urlencode和urldecode。
        <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> <?php 	$city=urlencode("大西安"); 	echo "<a href='1.php?city={$city}&name=tan'>數據</a>"; ?> </body> </html>
        <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> <?php 	echo "<pre>";  	echo print_r($_GET); 	echo "</pre>"; 	echo urldecode($_GET['city']); ?> </body> </html>
        • 使用二:瀏覽器通過表單傳送信息給服務器(最好使用$_POST)
        <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> <form action='1.php' method='GET'> 輸入內容:<input type='text' name='ha'/> <input type='submit' name='查詢'/> </form> </body> </html>
        <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> <?php 	echo $_GET['ha']; ?> </body> </html>
        • 禁止啟用register_globals:設置register_globals=off;
        • 啟用register_globals,以下代碼訪問時若輸入http://localhost:88/1.php?a=10&b=20;將得到10 20。
        <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> <?php 	echo $a." ".$b; ?> </body> </html>

        $_POST

        • 通過post方式提交的數據,會被封裝到$_POST超全局數組中。
        • 使用一:瀏覽器通過表單傳送信息給服務器(有些數據必須使用post方式)
        <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> <form action='1.php' method='POST'> 用戶名:<input type="text" name="username"/><br/> 密碼:<input type="password" name="password"/><br/> 性別:<input type="radio" name="sex" value="woman">女</input><input type="radio" name="sex" value="man">男</input><br/> 籍貫:<select name="city"> <option value="西安">西安</option> <option value="北京">北京</option> <option value="哈爾濱">哈爾濱</option> </select> <br/> 愛好:<input type="checkbox" name="hobby[]" value="唱歌">唱歌</input> <input type="checkbox" name="hobby[]" value="跳舞">跳舞</input> <input type="checkbox" name="hobby[]" value="LOL">LOL</input><br/> 個人簡介:<textarea rows="10" cols="10" name="introduce"></textarea><br> 文件上傳:<input type="file" name="files"></input><br/> <input type="submit" value="提交"/> </form> </body> </html>
        <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> <?php 	echo "<pre>";  	//如何接收checkbox的所有數據(注意中括號[]):<input type="checkbox" name="hobby[]" value="唱歌">唱歌</input> 	echo print_r($_POST); 	echo "</pre>"; 	 	$hobbies=$_POST['hobby']; 	foreach($hobbies as $key=>$val){ 		echo "<br/>".$key." ".$val; 	} ?> </body> </html>
        • POST方式和GET方式的區別

          • POST方式安全性好
          • 數據傳輸大小(POST方式大)
          • 保存到收藏夾(GET方式)

        $_REQUEST

        $_REQUEST是一個包含了 $_POST、$_GET 和 $_COOKIE 的數組,數組結構與 $_POST 和 $_GET 類似。

        也就是說不管是使用 POST 還是使用 GET 方式提交的數據,都可以使用 $_REQUEST 來獲取,甚至可以使用 $_REQUEST 來獲取 COOKIE 的信息。在 PHP5.3 中引入 request_order 屬性,我們可以通過在 php.ini 配置文件中修改 request_order 屬性的值,來控制 $_REQUEST 中包含的內容。

        request_order 屬性的值可以是 G、P 和 C 這三個大寫的英文字母,它們分別代表 GET、POST 和 COOKIE。默認情況下 request_order 屬性的默認值為request_order="GP",并不包含 C,也就是說 $_REQUEST 中并不包含 COOKIE 的信息,如果我們希望 $_REQUEST 中包含 COOKIE 的話,需要將其修改為request_order="GPC"。

        注意:不要經常使用$_REQUEST(因為將多個信息混合)。

        <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> <a href="1.php?name='tan'">超鏈接</a> <form action='1.php' method='POST'> 用戶名:<input type="text" name="username"/><br/> 密碼:<input type="password" name="password"/><br/> <input type="submit" value="提交"/> </form> </body> </html>
        <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> <?php 	echo $_REQUEST['name']; 	echo $_REQUEST['username']; ?> </body> </html>
        • 通過$_SERVER[‘REQUEST_METHOD’]區分GET和POST
        <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> <?php 	if($_SERVER['REQUEST_METHOD']=="GET"){ 		echo $_REQUEST['name']; 	}else if($_SERVER['REQUEST_METHOD']=="POST"){ 		echo $_REQUEST['username']; 	} ?> </body> </html>

        $_SERVER

        $_SERVER是一個包含諸如頭信息、路徑和腳本位置的數組。數組的實體由web服務器創建,并不能保證所有的服務器都能產生所有的信息,服務器可能忽略了一些信息,或者產生了一些其他的新的信息。和其他的超全局數組一樣,這是一個自動的全局變量,在所有的腳本中都有效,在函數或對象的方法中不需要使用global關鍵字訪問它。

        $_ENV

        獲取服務器端的環境變量,通過修改php.ini的variables_order="EGPCS"啟動。

        $_ENV數組中的內容是在PHP解析器運行時,從PHP所在服務器中的環境變量轉變為PHP全局變量的。它們中許多都是由PHP所運行的系統決定的,完整的列表是不可能的,需要查看PHP所在服務器的系統文檔以確定其特定的環境變量。

        $GLOBALS

        $GLOBALS是由所有已定義的全局變量組成的數組,變量名就是該數組的索引。

        • 包含了全部變量的全局組合數組。

        • 當定義一個全局變量,也會被$GLOBALS管理。
        <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head> <body> <?php 	$a=100; 	echo "<pre>"; 	print_r($GLOBALS); 	echo "</pre>"; ?> </body> </html>

        php全局數組有哪些

        $_FILES

        使用表單的file輸入域上傳文件時,必須使用post提交。但在服務器文件中,并不能通過$_POST超全局數組獲取到表單中file域的內容。而$_FILES超全局變量是通過post方法傳遞的已上傳文件項目組成的數組。$_FILES是一個二維數組,包含5個子數組元素,其中第一個下標是表單中file輸入域的名稱,第二個下標用于描述上傳文件的屬性。

        $_COOKIE

        $_COOKIE超全局數組是經由HTTP Cookies方法提交至腳本的變量。通常這些Cookies是由以前執行的PHP腳本通過setCookies()函數設置到客戶端瀏覽器中的,當PHP腳本從客戶瀏覽器提取了一個cookie后,它將自動把它轉換成一個變量,可以通過這個$_COOKIE超全局數組和cookie的名稱來存取指定的cookie值。

        $_SESSION

        會話控制是在服務器端使用session跟蹤用戶,當服務器頁面中使用session_start()函數開啟session后,就可以使用$_SESSION數組注冊全局變量,用戶就可以在整個網站中訪問這些會員信息。

        說明:$_COOKIE、$_SESSION、$_REQUEST的區別

        在 PHP 中,cookie 就是服務器,它是留在客戶端(瀏覽器)上的一個小的數據文件,通常用于標識用戶信息,也稱為瀏覽器緩存或 Cookies。

        $_COOKIE[] 全局數組存儲了通過 HTTP COOKIE 傳遞到腳本的信息,PHP 可通過 setcookie() 函數設置 COOKIE 的值,用 $_COOKIE[] 數組接收 COOKIE 的值,$_COOKIE[] 數組的索引為 COOKIE 的名稱。

        session 是一種客戶與網站(服務器)更為安全的對話方式,一旦開啟了 session 會話,便可以在網站的任何頁面使用(保持)這個會話,從而讓訪問者與網站之間建立了一種“對話”機制。但是 session 不同于 cookie,必須先啟動,才能生效。

        $_SESSION[] 數組用于獲取會話變量的相關信息。

        $_REQUEST 支持 $_GET 和 $_POST 發送過來的請求,即 get 和 post 它都可以接受,瀏覽器地址欄中的數據顯示不顯示要看傳遞的方法,get 會顯示在 url 中(有字符限制),post 不會顯示在 url 中,可以傳遞任意多的數據(只要服務器支持)。

        默認情況下,$_REQUEST[] 數組包含了 $_GET、$_POST 和 $_COOKIE 的數組。

        推薦學習:《PHP視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 无码乱码观看精品久久| 国产精品水嫩水嫩| 精品亚洲欧美中文字幕在线看| 97精品国产91久久久久久| 国产精品1024视频| 精品欧美一区二区在线看片| 国产福利精品一区二区| 亚洲精品午夜无码专区| 国产精品亚洲αv天堂无码| 国产精品夜色一区二区三区| 全球AV集中精品导航福利| 欧美精品一区二区三区免费| 91精品国产高清久久久久久io| 无码人妻精品一区二区三区久久| 日本精品久久久久中文字幕8| 无码精品人妻一区二区三区免费看| 精品国产粉嫩内射白浆内射双马尾| 精品国产午夜福利在线观看| 国产精品视频一区二区三区| 一区二区日韩国产精品| 国产欧美日本精品| 精品亚洲综合久久中文字幕| 国产在线精品无码二区| 久久久久久九九99精品| 麻豆精品| 国产亚洲精品无码拍拍拍色欲| 日韩精品无码一本二本三本| 无夜精品久久久久久| 国产亚洲精品无码专区| 精品成人av一区二区三区| 国产成人1024精品免费| 国产99精品久久| 国内精品伊人久久久久AV影院| 99re6在线精品免费观看| 综合久久精品色| 国产精品亚洲美女久久久| 国产精品99久久久久久www| 91麻豆精品国产91久久久久久| 精品无码国产自产拍在线观看蜜| 成人国产精品秘 果冻传媒在线 | 97久久精品无码一区二区|