1.$_SERVER变量练习
php代码
// 返回当前路径和脚本名
echo $_SERVER['PHP_SELF'];
echo "<br>";
// 返回服务器使用的 CGI(公共网关协议) 规范的版本
echo $_SERVER['GATEWAY_INTERFACE'];
echo "<br>";
// 返回服务器IP地址
echo $_SERVER['SERVER_ADDR'];
echo "<br>";
// 返回主机名(域名)
echo $_SERVER['SERVER_NAME'];
echo "<br>";
// 返回服务器标识字符串,服务器的软件相关信息
echo $_SERVER['SERVER_SOFTWARE'];
echo "<br>";
// 返回协议名称和版本
echo $_SERVER['SERVER_PROTOCOL'];
echo "<br>";
// 返回请求方式,默认为GET
echo $_SERVER['REQUEST_METHOD'];
echo "<br>";
// 返回请求开始的时间戳
echo $_SERVER['REQUEST_TIME'];
echo "<br>";
// 返回?后查询字符串
echo $_SERVER['QUERY_STRING'];
echo "<br>";
// 返回当前请求头中 Accept: 项的内容
echo $_SERVER['HTTP_ACCEPT'];
echo "<br>";
// 返回当前请求头中 Accept-Charset项的内容,没有返回空
echo $_SERVER['HTTP_ACCEPT_CHARSET'];
echo "<br>";
// 返回当前请求头中 Host 项的内容
echo $_SERVER['HTTP_HOST'];
echo "<br>";
// 返回当前前一页的地址,但不可信。通过超链接以及POST或GET表单访问的页面,才有效。
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
// 页面通过HTTPS协议被访问,被设为一个非空的值
echo $_SERVER['HTTPS'];
echo "<br>";
// 返回当前访问用户IP地址
echo $_SERVER['REMOTE_ADDR'];
echo "<br>";
// 返回浏览当前页面的用户的主机名
echo $_SERVER['REMOTE_HOST'];
echo "<br>";
// 返回用户机器上连接到Web服务器所使用的端口号
echo $_SERVER['REMOTE_PORT'];
echo "<br>";
// 返回当前执行脚本的绝对路径
echo $_SERVER['SCRIPT_FILENAME'];
echo "<br>";
// 返回服务器管理员信息
echo $_SERVER['SERVER_ADMIN'];
echo "<br>";
// 返回Web服务器使用的端口
echo $_SERVER['SERVER_PORT'];
echo "<br>";
// 返回服务器版本和虚拟主机名的字符串
echo $_SERVER['SERVER_SIGNATURE'];
echo "<br>";
// 返回当前脚本所在文件系统(非文档根目录)的基本路径
echo $_SERVER['PATH_TRANSLATED'];
echo "<br>";
// 返回包含当前脚本的路径
echo $_SERVER['SCRIPT_NAME'];
echo "<br>";
// URI用来指定要访问的页面
echo $_SERVER['SCRIPT_URI'];
运行结果
2.验证器理解和实例联系
实例1
// 过滤器函数
$num=10;
echo filter_var($num,FILTER_VALIDATE_INT)? "合法整数":"不是合法整数";
echo "<br>";
$num=10.1;
echo filter_var($num,FILTER_VALIDATE_INT)? "合法整数":"不是合法整数";
echo "<br>";
// 外部变量过滤器
// 返回主机名
echo filter_input(INPUT_SERVER,'SERVER_NAME');
echo "<br>";
// 返回当前路径和脚本名称
echo filter_input(INPUT_SERVER,'SCRIPT_NAME');
echo "<br>";
// 返回当前路径和脚本名称
echo filter_input(INPUT_SERVER,'QUERY_STRING');
echo "<br>";
// path_info:路径信息 脚本与?之间的值
echo filter_input(INPUT_SERVER,'PATH_INFO');
echo "<br>";
// 返回当前请求的url地址
echo filter_input(INPUT_SERVER,'REQUEST_URI');
echo "<br>";
// 端口号 http协议默认的80 https 443
echo filter_input(INPUT_SERVER,'SERVER_PORT');
echo "<br>";
// 获取完整URl地址
$post=filter_input(INPUT_SERVER,'SERVER_POST');
$scheme=intval($post)===443?'https://':'http://';
$host=filter_input(INPUT_SERVER,'SERVER_NAME');
$url=filter_input(INPUT_SERVER,'REQUEST_URI');
echo $scheme.$host.$url;
运行结果
实例2
// print_r( filter_list());
echo filter_has_var(INPUT_GET,'id')?'存在':'不存在';
echo "<br>";
$email="77@qq.com";
echo filter_var($email,FILTER_VALIDATE_EMAIL)?'一个合法的E-MAIL地址':'不合格E-MAIL地址';
echo "<br>";
// 自定义过滤器
function filter_word($str){
return str_replace('.','_',$str);
}
$str="www.baidu.com";
echo $str;
echo "<br>";
echo filter_var($str,FILTER_CALLBACK,['options'=>'filter_word']);
运行结果
3.数据序列化和反序列化
$arr=[1,true,"qiqi",4.7];
// 序列化
echo serialize($arr);
echo "<br>";
// 反序列化
$str=serialize($arr);
$arr1=unserialize($str);
var_dump($arr1);
运行结果