php中数学函数、日期函数、头部(header)函数以及SERVER超全局变量
数学函数:
abs():求一个数的绝对值;
例如:<?php echo(3) => 3 ?> <?php echo(-3) => 3 ?> //根据参数,返回float或int
ceil():进一取值:
例如:<?php echo(3) => 3 ?> <?php echo(-2.1) => -2 ?> <?php echo(0.4) => 1 ?> <?php echo(0.6) => 1 ?> // 返回大于等于 X 的一个整数,X 如果有小数部分则进一取整
floor():舍掉小数部分:
例如:<?php echo(3) => 3 ?> <?php echo(-2.1) => -3 ?> <?php echo(0.4) => 0 ?> <?php echo(0.6) => 0 ?> // 返回小于等于 X 的下一个整数,将 X 的小数部分舍去取整
round():四舍五入:
例如: <?php echo(0.4) => 0 ?> <?php echo(0.6) => 1 ?>
max():求最大值
例如:<?php max(0.4,1,2,3,100) => 100 ?>
min():求最小值
<?php min(0.4,1,2,3,100) => 0.4 ?>
is_numeric():检测变量是否为数字或数字字符串;
语法: is_numeric($num1);//返回true / false
intval():把变量转换为整型;
语法: intval($var);//返回整型数值(int)
说明 :$var是字符串从开始位置遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时结束转换;
例如:
<?php
var_dump(intval('12abc'));//输出 12
var_dump(intval(array(1,2,3)));//输出 1
var_dump(intval(array()));//输出 0
?>
日期函数:
date_default_timezone_set():设置默认时区;
语法:date_default_timezone_set(参数);//设置默认时区
说明:UTC(世界标准时间) PRC(中国时间) ‘默认时区’和中国相差8小时
时间戳 :
1) 是一个整数
2) 是从 Unix 纪元,即:格林威治时间 1970 年 1 月 1 日 00:00:00,到当前时间的秒数
time():获取当前的时间戳;
语法:time();//返回当前的时间戳
date():格式化一个日期/时间函数;
语法:date(格式 [,时间戳]);//返回格式化后的结果
说明:(1)第一个参数,格式化成什么表达形式
(2)第二个参数,把某个时间(时间戳),进行格式化
若没有写第二个参数,默认为:当前时间
Y:年 m:月 d:日 H:时 i:分 s:秒
D:星期中的第几天(Mon-Sun) W:年份中第几周 w:星期中的第几天(0(表示星期天)-6(星期六)) l:星期几(Sunday-Monday) L:是否为闰年(闰年为1,否则为0) z:年份中的第几天(0-366) a:小写的上午或者下午 A:大写的上午或者下午
strtotime():任何英文文本的日期时间描述解析为 Unix 时间戳
用法: strtotime (‘now’);//获取当前时间戳
strtotime (日期时间);//把时间日期转换为时间戳
strtotime (当前时间增减);//返回处理后的时间戳
strtotime (增减, 指定时间戳);//返回处理后的时间戳
注意:转换为时间戳 , 传入的日期时间分割字符要统一
例如:
<?php
echo date("Y-m-d H:i:s",strtotime('now'))."<br>"; //将当前时间的时间戳格式化
echo date("Y-m-d H:i:s",strtotime('+1 day')).“<br>”; //格式化时间+1天
echo date("Y-m-d H:i:s",strtotime('+1 week')).“<br>”; //格式化时间+1周
$time="2016年09月23日15时50时20秒";
$times="2016-11-14 09:09:09";
if(strtotime($time)-strtotime($times)<0){
echo "时间:".$time." 早于时间:".$times;
}else{
echo "时间:".$times." 早于时间:".$time;
}
?>
mktime():返回一个日期的 Unix 时间戳
语法:mktime(hour,minute,second,month,day,year);
应用:在做日期计算和验证方面很有用,它会自动计算超出范围的输入的正确值,但缺陷在于必须按照规定的格式
例如:
?php
echo date("Y-m-d", mktime(0, 0, 0, 12, 32, 2015));
echo date("Y-m-d", mktime(0, 0, 0, 13, 1, 2015));
echo date("Y-m-d", mktime(0, 0, 0, 13, 1, 15));//输出的都是2016-01-01
//php获取今日开始时间戳和结束时间戳
$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
//时间戳格式化
echo date("Y-m-d H:i:s",$beginToday)."<br>";
echo date("Y-m-d H:i:s",$endToday);
//输出:2016-11-19 00:00:00 2016-11-19 23:59:59
?>
header()头部函数:
header()函数向客户端浏览器发送一些头部信息的,浏览器收到后处理,用户无法在浏览器中看到。
如果我们可以直接使用它来做301跳转、设置页面类型等,下面我来总结关于header函数常用用法。
设置页面编码:header('content-type: text/html; charset=utf-8');
设置网页类型:
header('content-type:image/png');
header('content-type:image/gif');
header('content-type:image/jpeg');
跳转到新网址:
header('location:http://www.baidu.com/');
exit;
注意: 1.Location和“:”之间不能有空格,否则会无法跳转;
2.在每个跳转之后都必须加上“exit”,避免发生错误后,继续执行。
3. header输出前不能有任何其他输出
(php.ini中output_buffering可设置,允许header前输出)
1)php echo的输出
2)html代码的输出,包括空格等
header('HTTP/1.1 200 OK'); // 正常访问
header('HTTP/1.1 404 Not Found'); //页面不存在
header('HTTP/1.1 301 Moved Permanently');//页面已经重定向
注意:
header() 必须在任何实际输出之前调用,不管是普通的html标签,还是文件里面的空行,空格或者是PHP文件里的空行,空格。
(php.ini中output_buffering可设置,允许header前输出)
如: 1)php echo的输出
2)html代码的输出,包括空格等
3)文件本身头输出:utf-8 BOM,这种文件编码,本身还有文件头输出
BOM:Byte Order Mark,字节序标记。
BOM标记:占3个字节
utf-8文件,可以使用BOM标记,也可以不使用
我们不使用BOM标记。另存时选择,不带BOM的
$_SERVER 是一个超全局变量,包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。
例如:
<?php
echo "<pre>";
print_r($_SERVER); //打印输出所有元素
?>
常用的键名 $_SERVER[‘XXXX’]
HTTP_REFERER 当前页的前一页的地址;来源页面(如果存在)
HTTP_HOST 网站域名
REMOTE_ADDR 访问当前页面的用户的IP地址
DOCUMENT_ROOT 当前运行脚本所在的文档根目录。
QUERY_STRING 查询字符串,(URL 中第一个问号 ? 之后的内容)
REQUEST_URI 用来指定要访问的页面。例如“/index.html”
PHP_SELF 当前执行脚本的文件名
REQUEST_METHOD 访问页面时的请求方法。例如:“GET”、“POST”。
数学函数:
abs():求一个数的绝对值;
例如:<?php echo(3) => 3 ?> <?php echo(-3) => 3 ?> //根据参数,返回float或int
ceil():进一取值:
例如:<?php echo(3) => 3 ?> <?php echo(-2.1) => -2 ?> <?php echo(0.4) => 1 ?> <?php echo(0.6) => 1 ?> // 返回大于等于 X 的一个整数,X 如果有小数部分则进一取整
floor():舍掉小数部分:
例如:<?php echo(3) => 3 ?> <?php echo(-2.1) => -3 ?> <?php echo(0.4) => 0 ?> <?php echo(0.6) => 0 ?> // 返回小于等于 X 的下一个整数,将 X 的小数部分舍去取整
round():四舍五入:
例如: <?php echo(0.4) => 0 ?> <?php echo(0.6) => 1 ?>
max():求最大值
例如:<?php max(0.4,1,2,3,100) => 100 ?>
min():求最小值
<?php min(0.4,1,2,3,100) => 0.4 ?>
is_numeric():检测变量是否为数字或数字字符串;
语法: is_numeric($num1);//返回true / false
intval():把变量转换为整型;
语法: intval($var);//返回整型数值(int)
说明 :$var是字符串从开始位置遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时结束转换;
例如:
<?php
var_dump(intval('12abc'));//输出 12
var_dump(intval(array(1,2,3)));//输出 1
var_dump(intval(array()));//输出 0
?>
日期函数:
date_default_timezone_set():设置默认时区;
语法:date_default_timezone_set(参数);//设置默认时区
说明:UTC(世界标准时间) PRC(中国时间) ‘默认时区’和中国相差8小时
时间戳 :
1) 是一个整数
2) 是从 Unix 纪元,即:格林威治时间 1970 年 1 月 1 日 00:00:00,到当前时间的秒数
time():获取当前的时间戳;
语法:time();//返回当前的时间戳
date():格式化一个日期/时间函数;
语法:date(格式 [,时间戳]);//返回格式化后的结果
说明:(1)第一个参数,格式化成什么表达形式
(2)第二个参数,把某个时间(时间戳),进行格式化
若没有写第二个参数,默认为:当前时间
Y:年 m:月 d:日 H:时 i:分 s:秒
D:星期中的第几天(Mon-Sun) W:年份中第几周 w:星期中的第几天(0(表示星期天)-6(星期六)) l:星期几(Sunday-Monday) L:是否为闰年(闰年为1,否则为0) z:年份中的第几天(0-366) a:小写的上午或者下午 A:大写的上午或者下午
strtotime():任何英文文本的日期时间描述解析为 Unix 时间戳
用法: strtotime (‘now’);//获取当前时间戳
strtotime (日期时间);//把时间日期转换为时间戳
strtotime (当前时间增减);//返回处理后的时间戳
strtotime (增减, 指定时间戳);//返回处理后的时间戳
注意:转换为时间戳 , 传入的日期时间分割字符要统一
例如:
<?php
echo date("Y-m-d H:i:s",strtotime('now'))."<br>"; //将当前时间的时间戳格式化
echo date("Y-m-d H:i:s",strtotime('+1 day')).“<br>”; //格式化时间+1天
echo date("Y-m-d H:i:s",strtotime('+1 week')).“<br>”; //格式化时间+1周
$time="2016年09月23日15时50时20秒";
$times="2016-11-14 09:09:09";
if(strtotime($time)-strtotime($times)<0){
echo "时间:".$time." 早于时间:".$times;
}else{
echo "时间:".$times." 早于时间:".$time;
}
?>
mktime():返回一个日期的 Unix 时间戳
语法:mktime(hour,minute,second,month,day,year);
应用:在做日期计算和验证方面很有用,它会自动计算超出范围的输入的正确值,但缺陷在于必须按照规定的格式
例如:
?php
echo date("Y-m-d", mktime(0, 0, 0, 12, 32, 2015));
echo date("Y-m-d", mktime(0, 0, 0, 13, 1, 2015));
echo date("Y-m-d", mktime(0, 0, 0, 13, 1, 15));//输出的都是2016-01-01
//php获取今日开始时间戳和结束时间戳
$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
//时间戳格式化
echo date("Y-m-d H:i:s",$beginToday)."<br>";
echo date("Y-m-d H:i:s",$endToday);
//输出:2016-11-19 00:00:00 2016-11-19 23:59:59
?>
header()头部函数:
header()函数向客户端浏览器发送一些头部信息的,浏览器收到后处理,用户无法在浏览器中看到。
如果我们可以直接使用它来做301跳转、设置页面类型等,下面我来总结关于header函数常用用法。
设置页面编码:header('content-type: text/html; charset=utf-8');
设置网页类型:
header('content-type:image/png');
header('content-type:image/gif');
header('content-type:image/jpeg');
跳转到新网址:
header('location:http://www.baidu.com/');
exit;
注意: 1.Location和“:”之间不能有空格,否则会无法跳转;
2.在每个跳转之后都必须加上“exit”,避免发生错误后,继续执行。
3. header输出前不能有任何其他输出
(php.ini中output_buffering可设置,允许header前输出)
1)php echo的输出
2)html代码的输出,包括空格等
header('HTTP/1.1 200 OK'); // 正常访问
header('HTTP/1.1 404 Not Found'); //页面不存在
header('HTTP/1.1 301 Moved Permanently');//页面已经重定向
注意:
header() 必须在任何实际输出之前调用,不管是普通的html标签,还是文件里面的空行,空格或者是PHP文件里的空行,空格。
(php.ini中output_buffering可设置,允许header前输出)
如: 1)php echo的输出
2)html代码的输出,包括空格等
3)文件本身头输出:utf-8 BOM,这种文件编码,本身还有文件头输出
BOM:Byte Order Mark,字节序标记。
BOM标记:占3个字节
utf-8文件,可以使用BOM标记,也可以不使用
我们不使用BOM标记。另存时选择,不带BOM的
$_SERVER 是一个超全局变量,包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。
例如:
<?php
echo "<pre>";
print_r($_SERVER); //打印输出所有元素
?>
常用的键名 $_SERVER[‘XXXX’]
HTTP_REFERER 当前页的前一页的地址;来源页面(如果存在)
HTTP_HOST 网站域名
REMOTE_ADDR 访问当前页面的用户的IP地址
DOCUMENT_ROOT 当前运行脚本所在的文档根目录。
QUERY_STRING 查询字符串,(URL 中第一个问号 ? 之后的内容)
REQUEST_URI 用来指定要访问的页面。例如“/index.html”
PHP_SELF 当前执行脚本的文件名
REQUEST_METHOD 访问页面时的请求方法。例如:“GET”、“POST”。