PHP獲取變數
⑴ php中如何讀取環境變數
PHP中的環境變數可以通過 $_SERVER 獲取
$_SERVER是一個包含伺服器端相關信息的PHP全局環境變數,在PHP4.1.0之前的版本使用$HTTP_SERVER_VARS。
下面是詳細的說明及用法:
$_SERVER['PHP_SELF'] 當前正在執行腳本的文件名,與 document root相關。在FORM表單中,如執行文件是本身,你可以在ACTION中使用$_SERVER['PHP_SELF'],好處是當執行文件名有變動時可以不去頻繁替換ACTION中的文件名。
$_SERVER['SERVER_NAME'] 當前運行的PHP程序所在伺服器主機的名稱。
$_SERVER['REQUEST_METHOD'] 訪問頁面時的請求方法,即GET、HEAD、POST、PUT。
$_SERVER['DOCUMENT_ROOT'] 當前運行的PHP程序所在的文檔根目錄。也就是PHP.INI文件中的定義。
$_SERVER['HTTP_REFERER'] 鏈接到當前頁面的前一頁面的URL地址。在頁面跳轉功能中非常有用。
$_SERVER['REMOTE_ADDR'] 正在瀏覽當前頁面訪問者的IP地址。
$_SERVER['REMOTE_HOST'] 正在瀏覽當前頁面用戶的主機名。
$_SERVER['REMOTE_PORT'] 正在游覽的用戶連接到伺服器時所使用的埠。
$_SERVER['SCRIPT_FILENAME'] 當前執行腳本的絕對路徑名。
$_SERVER['SERVER_PORT'] 伺服器所使用的埠
$_SERVER['SCRIPT_NAME'] 包含當前腳本的路徑。這在頁面需要指向自己時非常有用。
$_SERVER['REQUEST_URI'] 訪問此頁面所需的URI。如「/index.html」。
$_SERVER['PHP_AUTH_USER'] 應用在HTTP用戶登錄認證功能中,這個變數是用戶輸入的用戶名。
$_SERVER['PHP_AUTH_PW'] 應用在HTTP用戶登錄認證功能中,這個變數便是用戶輸入的密碼。
$_SERVER['AUTH_TYPE'] 應用在HTTP用戶登錄認證功能中,這個變數便是認證的類型。
備註:上述提到的這些PHP全局環境變數,在php.ini中的register_globals設置為on時,這些變數在所有PHP程序腳本中都可用,也就是$_SERVER數組被分離了。當然為了安全考慮,還是不要將register_globals打開為好。
⑵ 如何讓PHP能夠讀取系統環境變數
一、fpm模式
1、通過伺服器傳遞
如在nginx的配置里設置:
fastcgi_param ENV_XXX 123456;
每次頁面請求nginx都會將此變數傳遞給php,php可以通過getenv函數或$_SERVER全局變數獲得。
2、通過fpm配置傳遞
fpm在每次啟動時都會讀取php-fpm.conf文件中的環境變數設置,如:
env[ENV_XXX]="test test"
或者讓fpm讀取系統環境變數,如:
env[ENV_XXX]=$ENV_XXX
注意此種方式要確保系統環境變數存在,且不被sudo禁用。
如果fpm是用sudo方式啟動,默認sudo會禁用一些環境變數,可以通過以下方式放開限制:
vim /etc/sudoers
Defaults env_reset
Defaults env_keep = "ENV_XXX"
或者乾脆放開所有限制:
Defaults !env_reset
最後,如果修改了php-fpm.conf中的設置需要重啟fpm才能生效,同樣php可以通過getenv函數或$_SERVER全局變數獲得環境變數。
二、命令行模式
命令行模式限制較少,可以通過getenv函數或$_SERVER全局變數獲取對當前執行用戶有效的系統環境變數,同樣要注意sudo的限制。
⑶ php中,獲取類裡面函數的變數,的方法是
調用類中的函數的變數,外面是無法直接調用的。
要調用的話:
1、設置返回值
2、直接在函數輸出
前2點@xulinjie1214 已經回答了
3、全局變數
<?php
$a=0;
class ab
{
function niya()
{
global $a;
$a=50+1;
}
}
$pp=new ab;
$pp->niya();
echo $a;
?>
⑷ php global可以獲取函數外的變數,不可以獲取函數內的變數!
php的global可以獲取函數內的變數啊。你這知識哪裡看的?但是前提是該函數必須執行過。沒有執行過的話啥都不能訪問
說明一下
PHP global 關鍵詞
global 關鍵詞用於訪問函數內的全局變數。
要做到這一點,請在(函數內部)變數前面使用 global 關鍵詞:
<?php
$y=10;
functionmyTest(){
global$y;
$y=15;
}
myTest();//要執行過才能訪問
echo$y;//輸出15
?>
⑸ PHP中如何獲得變數名,同時輸出多個變數的值。
顯示變數名這個需求雖然很危險,但還是可以實現:
<?php
$a=compact($Keyword1,$Keyword2,$Keyword3);
print_r($a);