<?php
$b='333';
$ccc='klsdjlf';
function GetUserVars($arr){
$arr2=array("COMSPEC", "DOCUMENT_ROOT", "HOME", "HTTP_ACCEPT", "HTTP_ACCEPT_ENCODING", "HTTP_ACCEPT_LANGUAGE", "HTTP_CONNECTION", "HTTP_COOKIE", "HTTP_HOST", "HTTP_USER_AGENT", "PATH", "REDIRECT_STATUS", "REDIRECT_URL", "REMOTE_ADDR", "REMOTE_PORT", "SCRIPT_FILENAME", "SERVER_ADDR", "SERVER_ADMIN", "SERVER_NAME", "SERVER_PORT", "SERVER_SIGNATURE", "SERVER_SOFTWARE", "SystemRoot", "WINDIR", "GATEWAY_INTERFACE", "SERVER_PROTOCOL", "REQUEST_METHOD", "QUERY_STRING", "REQUEST_URI", "SCRIPT_NAME", "PATH_INFO", "PATH_TRANSLATED", "PHPSESSID", "PHP_SELF", "argv", "argc", "HTTP_POST_VARS", "_POST", "HTTP_GET_VARS", "_GET", "HTTP_COOKIE_VARS", "_COOKIE", "HTTP_SERVER_VARS", "_SERVER", "HTTP_ENV_VARS", "_ENV", "HTTP_POST_FILES", "_FILES", "_REQUEST", "HTTP_SESSION_VARS", "_SESSION");
foreach($arr as $k=>$v){
if(!in_array($k, $arr2)){
$arr3[$k]=$v;
}
}
return $arr3;
}
echo '<pre>';
$arr=GetUserVars(get_defined_vars());
print_r($arr);
?> $arr2中限制的预定义变量可能还不完全,将所有预定义变量去除就可以得到自定义的变量的变量名和值.
$b='333';
$ccc='klsdjlf';
function GetUserVars($arr){
$arr2=array("COMSPEC", "DOCUMENT_ROOT", "HOME", "HTTP_ACCEPT", "HTTP_ACCEPT_ENCODING", "HTTP_ACCEPT_LANGUAGE", "HTTP_CONNECTION", "HTTP_COOKIE", "HTTP_HOST", "HTTP_USER_AGENT", "PATH", "REDIRECT_STATUS", "REDIRECT_URL", "REMOTE_ADDR", "REMOTE_PORT", "SCRIPT_FILENAME", "SERVER_ADDR", "SERVER_ADMIN", "SERVER_NAME", "SERVER_PORT", "SERVER_SIGNATURE", "SERVER_SOFTWARE", "SystemRoot", "WINDIR", "GATEWAY_INTERFACE", "SERVER_PROTOCOL", "REQUEST_METHOD", "QUERY_STRING", "REQUEST_URI", "SCRIPT_NAME", "PATH_INFO", "PATH_TRANSLATED", "PHPSESSID", "PHP_SELF", "argv", "argc", "HTTP_POST_VARS", "_POST", "HTTP_GET_VARS", "_GET", "HTTP_COOKIE_VARS", "_COOKIE", "HTTP_SERVER_VARS", "_SERVER", "HTTP_ENV_VARS", "_ENV", "HTTP_POST_FILES", "_FILES", "_REQUEST", "HTTP_SESSION_VARS", "_SESSION");
foreach($arr as $k=>$v){
if(!in_array($k, $arr2)){
$arr3[$k]=$v;
}
}
return $arr3;
}
echo '<pre>';
$arr=GetUserVars(get_defined_vars());
print_r($arr);
?> $arr2中限制的预定义变量可能还不完全,将所有预定义变量去除就可以得到自定义的变量的变量名和值.
print_r($_COOKIE);
print_r($_POST);
print_r($_GET);
差不多了吧。
<?php
$sysvar = get_defined_vars();
$a = 1;
$b = 'a';
print_r(array_diff(get_defined_vars(),$sysvar));
?>
得到
Array
(
[a] => 1
[b] => a
)
可惜又慢了一步