PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
æ¬æå®ä¾è®²è¿°äºPHPè¶çº§å¨å±åéç¨æ³ãå享ç»å¤§å®¶ä¾å¤§å®¶åèï¼å·ä½å¦ä¸ï¼
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
å±ä»¬è¿æ¬¡å°±æ¥èè$GLOBALS&$_SERVER&$_REQUESTè¿ä¸ä¸ªè¶çº§å¨å±åéãé¦åæ¯$GLOBALSï¼å®æ¯PHPçä¸ä¸ªè¶çº§å¨å±åéç»ï¼å¨ä¸ä¸ªPHPèæ¬çå¨é¨ä½ç¨åä¸é½å¯ä»¥è®¿é®ï¼å®è¿æ¯PHPçä¸ä¸ªè¶çº§å¨å±åéç»ï¼å¨ä¸ä¸ªPHPèæ¬çå¨é¨ä½ç¨åä¸é½å¯ä»¥è®¿é®ãå·ä½ç¨æ³å¦ä¸ï¼
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>
å¨ä¸é¢çå®ä¾ä¸ï¼ z æ¯ä¸ä¸ª$GLOBALSæ°ç»ä¸çè¶çº§å¨å±åéï¼è¯¥åéåæ ·å¯ä»¥å¨å½æ°å¤è®¿é®ã
æ¥ä¸æ¥çä¸$_SERVERï¼å®æ¯ä¸ä¸ªåå«äºè¯¸å¦å¤´ä¿¡æ¯(header)ãè·¯å¾(path)ã以åèæ¬ä½ç½®(script locations)ççä¿¡æ¯çæ°ç»ãè¿ä¸ªæ°ç»ä¸ç项ç®ç± Web æå¡å¨å建ãä¸è½ä¿è¯æ¯ä¸ªæå¡å¨é½æä¾å¨é¨é¡¹ç®ï¼æå¡å¨å¯è½ä¼å¿½ç¥ä¸äºï¼æèæä¾ä¸äºæ²¡æå¨è¿éå举åºæ¥ç项ç®ã使ç¨$_SERVERä¸çåç´ çå®ä¾å¦ä¸ï¼
<?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_REFERER']; echo "<br>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo $_SERVER['SCRIPT_NAME']; ?>
å±ä»¬æ¥çä¸ææ $_SERVER åéä¸çéè¦åç´ ï¼
åç´ /代ç | æè¿° |
---|---|
$_SERVER['PHP_SELF'] | å½åæ§è¡èæ¬çæ件åï¼ä¸ document root æå³ãä¾å¦ï¼å¨å°å为 http://example.com/test.php/foo.bar çèæ¬ä¸ä½¿ç¨ $_SERVER['PHP_SELF'] å°å¾å° /test.php/foo.barã__FILE__ 常éåå«å½å(ä¾å¦åå«)æ件çå®æ´è·¯å¾åæ件åã ä» PHP 4.3.0 çæ¬å¼å§ï¼å¦æ PHP 以å½ä»¤è¡æ¨¡å¼è¿è¡ï¼è¿ä¸ªåéå°åå«èæ¬åãä¹åççæ¬è¯¥åéä¸å¯ç¨ã |
$_SERVER['GATEWAY_INTERFACE'] | æå¡å¨ä½¿ç¨ç CGI è§èççæ¬ï¼ä¾å¦ï¼"CGI/1.1"ã |
$_SERVER['SERVER_ADDR'] | å½åè¿è¡èæ¬æå¨çæå¡å¨ç IP å°åã |
$_SERVER['SERVER_NAME'] | å½åè¿è¡èæ¬æå¨çæå¡å¨ç主æºåãå¦æèæ¬è¿è¡äºèæ主æºä¸ï¼è¯¥å称æ¯ç±é£ä¸ªèæ主æºæ设置çå¼å³å®ã(å¦: www.runoob.com) |
$_SERVER['SERVER_SOFTWARE'] | æå¡å¨æ è¯å符串ï¼å¨ååºè¯·æ±æ¶ç头信æ¯ä¸ç»åºã (å¦ï¼Apache/2.2.24) |
$_SERVER['SERVER_PROTOCOL'] | 请æ±é¡µé¢æ¶éä¿¡åè®®çå称åçæ¬ãä¾å¦ï¼"HTTP/1.0"ã |
$_SERVER['REQUEST_METHOD'] | 访é®é¡µé¢ä½¿ç¨ç请æ±æ¹æ³ï¼ä¾å¦ï¼"GET", "HEAD"ï¼"POST"ï¼"PUT"ã |
$_SERVER['REQUEST_TIME'] | 请æ±å¼å§æ¶çæ¶é´æ³ãä» PHP 5.1.0 èµ·å¯ç¨ã (å¦ï¼1377687496) |
$_SERVER['QUERY_STRING'] | query stringï¼æ¥è¯¢å符串ï¼ï¼å¦ææçè¯ï¼éè¿å®è¿è¡é¡µé¢è®¿é®ã |
$_SERVER['HTTP_ACCEPT'] | å½å请æ±å¤´ä¸ Accept: 项çå容ï¼å¦æåå¨çè¯ã |
$_SERVER['HTTP_ACCEPT_CHARSET'] | å½å请æ±å¤´ä¸ Accept-Charset: 项çå容ï¼å¦æåå¨çè¯ãä¾å¦ï¼"iso-8859-1,*,utf-8"ã |
$_SERVER['HTTP_HOST'] | å½å请æ±å¤´ä¸ Host: 项çå容ï¼å¦æåå¨çè¯ã |
$_SERVER['HTTP_REFERER'] | å¼å¯¼ç¨æ·ä»£çå°å½å页çåä¸é¡µçå°åï¼å¦æåå¨ï¼ãç± user agent 设置å³å®ã并ä¸æ¯ææçç¨æ·ä»£çé½ä¼è®¾ç½®è¯¥é¡¹ï¼æçè¿æä¾äºä¿®æ¹ HTTP_REFERER çåè½ãç®è¨ä¹ï¼è¯¥å¼å¹¶ä¸å¯ä¿¡ã) |
$_SERVER['HTTPS'] | å¦æèæ¬æ¯éè¿ HTTPS å议被访é®ï¼å被设为ä¸ä¸ªé空çå¼ã |
$_SERVER['REMOTE_ADDR'] | æµè§å½å页é¢çç¨æ·ç IP å°åã |
$_SERVER['REMOTE_HOST'] | æµè§å½å页é¢çç¨æ·ç主æºåãDNS åå解æä¸ä¾èµäºç¨æ·ç REMOTE_ADDRã |
$_SERVER['REMOTE_PORT'] | ç¨æ·æºå¨ä¸è¿æ¥å° Web æå¡å¨æ使ç¨ç端å£å·ã |
$_SERVER['SCRIPT_FILENAME'] | å½åæ§è¡èæ¬çç»å¯¹è·¯å¾ã |
$_SERVER['SERVER_ADMIN'] | 该å¼ææäº Apache æå¡å¨éç½®æ件ä¸ç SERVER_ADMIN åæ°ãå¦æèæ¬è¿è¡å¨ä¸ä¸ªèæ主æºä¸ï¼å该å¼æ¯é£ä¸ªèæ主æºçå¼ã(å¦ï¼[email protected]) |
$_SERVER['SERVER_PORT'] | Web æå¡å¨ä½¿ç¨ç端å£ãé»è®¤å¼ä¸º "80"ãå¦æä½¿ç¨ SSL å®å¨è¿æ¥ï¼åè¿ä¸ªå¼ä¸ºç¨æ·è®¾ç½®ç HTTP 端å£ã |
$_SERVER['SERVER_SIGNATURE'] | åå«äºæå¡å¨çæ¬åèæ主æºåçå符串ã |
$_SERVER['PATH_TRANSLATED'] | å½åèæ¬æå¨æ件系ç»ï¼éææ¡£æ ¹ç®å½ï¼çåºæ¬è·¯å¾ãè¿æ¯å¨æå¡å¨è¿è¡èæå°çå®è·¯å¾çæ ååçç»æã |
$_SERVER['SCRIPT_NAME'] | åå«å½åèæ¬çè·¯å¾ãè¿å¨é¡µé¢éè¦æåèªå·±æ¶é常æç¨ã__FILE__ 常éåå«å½åèæ¬(ä¾å¦åå«æ件)çå®æ´è·¯å¾åæ件åã |
$_SERVER['SCRIPT_URI'] | URI ç¨æ¥æå®è¦è®¿é®ç页é¢ãä¾å¦ "/index.html"ã |
æåæ¥çä¸$_REQUESTï¼å®ä¸»è¦ç¨äºæ¶éHTML表åæ交çæ°æ®ã以ä¸å®ä¾æ¾ç¤ºäºä¸ä¸ªè¾å¥å段ï¼inputï¼åæ交æé®(submit)ç表å(form)ã å½ç¨æ·éè¿ç¹å» "Submit" æé®æ交表åæ°æ®æ¶, 表åæ°æ®å°åéè³<form>æ ç¾ä¸ action å±æ§ä¸æå®çèæ¬æ件ã å¨è¿ä¸ªå®ä¾ä¸ï¼æ们æå®æ件æ¥å¤ç表åæ°æ®ãå¦ææ们å¸æå¶ä»çPHPæ件æ¥å¤ç该æ°æ®ï¼æ们就å¯ä»¥ä¿®æ¹è¯¥æå®çèæ¬æ件åã ç¶åï¼æ们å¯ä»¥ä½¿ç¨è¶çº§å¨å±åé $_REQUEST æ¥æ¶é表åä¸ç input å段æ°æ®ï¼å·ä½ä»£ç å¦ä¸ï¼
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>
好å¦ï¼æ¬æ¬¡è®°å½å°±å°è¿éäºã
æ´å¤å³äºPHPç¸å³å容æå´è¶£ç读èå¯æ¥çæ¬ç«ä¸é¢ï¼ãphp常ç¨å½æ°ä¸æå·§æ»ç»ãããphpå符串(string)ç¨æ³æ»ç»ãããPHPæ°æ®ç»æä¸ç®æ³æç¨ãããphpç¨åºè®¾è®¡ç®æ³æ»ç»ãåãPHPæ°ç»(Array)æä½æ巧大å¨ã
å¸ææ¬ææ述对大家PHPç¨åºè®¾è®¡ææ帮å©ã