一,错误处理
错误分为:
语法错误: 代码不会被执行. 直接报告代码中的错误.
运行时错误: 代码会被执行, 执行到错误的地方, 才报错.
逻辑错误: 代码执行, 不会报错, 但就不是想要的结果.
所有报出来的错误级别, 可以分为:
提示性错误( Notice )
警告性错误( Warning )
致命性错误( Fatal error )
<?php
getType($a); // 未定义变量, 提示性错误
getType( ); // 缺少参数, 警告性错误
getTypes( ); // 函数名不对, 致命性错误
?>
错误报告方式:
页面上显示错误信息 + 错误记录在日志文件
不同的环境选择不同的报告方式:
1) 开发环境 (Development)
页面上显示错误信息 + 错误记录在日志文件
2) 生产环境 (Production)
页面上不显示错误信息 + 错误记录在日志文件
通过修改 php.ini 配置文件决定错误处理方式
display_errors = On | Off 是否在页面上显示错误信息
log_errors = On | Off 是否把发生的错误记录在日志文件中
error_log = "D:/phpstudy_pro/Extensions/php/php5.6.9nts.log" 日志文件的位置
error_reporting = E_ALL & ~E_NOTICE 设置哪些错误需要报告 所有错误都报告, 除了提示性错误
在php代码中临时修改 错误处理方式
<?php
// 关闭所有PHP错误
error_reporting(0);
// 开启所有PHP错误
error_reporting(-1);
// 除了 E_NOTICE,报告其他所有错误
error_reporting(E_ALL ^ E_NOTICE);
error_reporting(E_ALL & ~E_NOTICE);
?>
二,时间戳
指的是, 格林威治时间 1970 年 1 月 1 日 00:00:00 到当前时间的秒数。
计算机中多用时间戳的形式, 来计算和存储时间和日期
生成时间戳
time( ) 获取当前的时间戳
strtotime('2017-03-20 12:00:00') 以字符串形式, 指定某天的时间戳
mktime(时, 分, 秒, 月, 日, 年) 以数值形式, 指定某个时刻的时间戳
getDate( ) 返回数组形式的时间信息
格式化时间戳
格式化, 是指把不好看懂的时间戳转换成方便理解的 年月日时分秒的形式
date('Y-m-d H:i:s', 时间戳)
'Y-m-d H:i:s' 格式化字符串
Y 4位格式的 年数
m 2位格式的 月份
d 2位格式的 日期
H 2位格式的 小时
i 2位格式的 分钟
s 2位格式的 秒数
时间戳 参数为可选. 如果不填, 默认为当前时间戳
格式化时间戳有一个时区的概念, 把时区设置为 中国 或者是 亚洲/上海
通过函数设置时区
date_default_timezone_set('PRC')
date_default_timezone_set('Asia/Shanghai')
php配置文件设置时区
[Date]
date.timezone=Asia/Shanghai
三,文件处理
1,目录操作
<?php
$dir = './images/';
$hd = opendir( $dir ); // 打开目录, 返回资源类型, 用 $hd 来代表被打开的目录
$f = readdir( $hd ); // 读取目录, $f 为目录里面的文件名, 每次读出一个新的文件名
/*
读取到最后, 会返回 false
每个目录中都会有两个隐藏目录 . 和 ..
*/
closedir( $hd ); // 关闭目录
?>
2,遍历目录
<?php
$dir = './images/';
$hd = opendir($dir); // 打开目录
// 逐条读取目录中的文件名
while ( ($f = readdir($hd)) !== false ) {
// 跳过目录中的 . 和 .. 目录
if ($f == '.' || $f == '..') { continue; }
// 输出文件名
echo $f;
}
closedir( $hd ); // 关闭目录
/*
如果文件名是 '0' 会误判断为 false, 从而提前结束跳出循环,
所以加一个 !== 判断 是全等于的关系
'0' 不是 布尔类型 所以 就可以 输出 0 这个文件
循环完之后 就是 布尔类型false
*/
3,文件操作
<?php
/* 写文件 */
$hf = fopen('./xxoo.txt','w'); // 找开一个文件,返回资源. 之后 $hf 就代表这个文件
fwrite($hf, 'abcd'); // 将 'abcd' 写入文件 开头写入
fclose( $hf ); // 关闭文件. 文件不用了就要及时关闭
?>
<?php
/* 追加写文件 */
$hf = fopen('./xxoo.txt','a'); // 找开一个文件,返回资源. 之后 $hf 就代表这个文件
fwrite($hf, 'abcd'); // 将 'abcd' 写入文件 追加写入
fclose( $hf ); // 关闭文件. 文件不用了就要及时关闭
?>
<?php
/* 读文件 */
$hf = fopen('./xxoo.txt','r'); // 找开一个文件
echo fread($hf, 4); // 读取4个字节内容, 显示到页面
fclose( $hf ); // 关闭文件.
?>
四,文件系统函数
is_file(文件的路径) 判断给定文件名是否为一个正常的文件
is_dir( 带路径的文件名 ) 判断一个给定的文件名是否是一个目录
file_exists( 带路径的文件名或目录名 ) 检查文件或目录是否存在
filetype( 带路径的文件名 ) 获取文件类型
filesize( 带路径的文件名 ) 获取文件的大小, 单位为字节
fileatime( 带路径的文件名 ) 取得文件的上次访问时间 access
filectime( 带路径的文件名 ) 取得文件的 inode 修改时间 change
filemtime( 带路径的文件名 ) 取得文件的 修改时间 modify
dirname( 路径 ) 返回路径中的目录部分. 如果路径本身是一个目录, 函数会返回它的父目录.
basename( 路径 ) 返回基本的文件名
realpath( 文件或目录 ) 获取文件或目录 在本地电脑上的磁盘路径
pathinfo( 路径 ) 返回文件路径的信息
touch( 文件名 ) 创建文件
unlink( 文件名 ) 删除一个文件
copy( 源文件名, 新文件名 ) 复制文件
mkdir( 目录名称 ) 新建目录
rmdir( 空目录名称 ) 删除一个空目录
fgetc( 文件资源 ) 从文件指针位置读取一个字节
fgets( 文件资源 ) 从文件指针位置读取一行内容
file( 文件名 ) 将整个文件读入一个数组中
|