PHP的错误处理
    错误报告级别
    PHP程序的错误发生一般归属于下列三个领域:
    语法错误:
    语法错误最常见,并且也容易修复。如:代码中遗漏一个分号。这类错误会阻止脚本的执行。
    运行时错误:
    这种错误一般不会阻止PHP脚本的执行,但会阻止当前要做的事情。输出一条错误,但php脚本继续执行
    逻辑错误:
    这种错误最麻烦,既不阻止脚本执行,也不输出错误消息。

    错误报告级别
    一个异常(后面面向对象时会讲)则是在一个程序执行过程中出现的一个例外,或是一个事件,它中断了正常指令的运行,跳转到其他程序模块继续执行。

    PHP的错误报错级别
    image.png
    调整错误报告级别
    display_errors: 是否开启PHP输出错误报告的功能 值为:
    On(默认输出错误报告)、 Off(屏蔽所有错误信息) 在PHP脚本中可调用ini_set( )函数,动态设置php.ini配置文件.
    如:
    ini_set(“display_errors”,”On”); //显示所有错误信息
    error_reporting: 设置不同的错误报告级别。
    error_reporting = E_ALL & ~E_NOTICE — 可以抛出任何非注意的错误,默认值
    error_reporting = E_ERROR | E_PARSE | E_CORE_ERROR — 只考虑致命的运行时错误、新解析错误和核心错误。
    error_reporting = E_ALL & ~(E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE) — 报告除用户导致的错误之外的所有错误。
    在PHP脚本可以通过error_reporting( )函数动态设置错误报告级别。
    如:error_reporting(E_ALL);
    image.png
    image.png
    确定PHP错误报告行为的配置指令
    image.png
    使用trigger_error()函数来替代die()
    1.首先函数die()等同于exit(),两者如果执行都会终止PHP程序,而且可以在退出程序之前输出一些错误报告。
    trigger_error()则可以生成一个用户警告来代替,使程序更具有灵活性。
    2.例如,trigger_error(“没有找到文件”,E_USER_ERROR)。使用trigger_error()函数来替代die(),你的代码在处理错误上会更具优势,对于客户程序员来说更容易处理错误。
    image.png
    image.png
    **

    写错误日志

    使用指定的文件记录错误报告日志
    1、先配置php.ini:
    error_reporting = E_ALL //将向PHP发送每个错误
    display_errors=Off //不显示错误报告
    log_errors=On //决定日志语句记录的位置
    log_errors_max_log=1024 // 每个日志项的最大长度
    error_log=G:/myerror.log //指定错误写进的文件
    2、使用函数:在php文件中使用error_log()来记录日志,就可以将信息写入到myerror.log文件中 如:error_log(“登录失败了!”);
    image.png
    image.png
    使用指定的文件记录错误报告日志**

    1. <?php
    2. if(!ora_logon($username, $password)){
    3. //将错误消息写入到操作系统日志中
    4. error_log("Oracle数据库不可用!", 0); }
    5. if(!($foo=allocate_new_foo()){
    6. //发送到管理员邮箱中
    7. error_log("出现大麻烦了!", 1, "webmaster@www.mydomain.com"); }
    8. //发送到本机对应5000端口的服务器中
    9. error_log("搞砸了!", 2, "localhost:5000");
    10. //发送到指定的文件中
    11. error_log("搞砸了!", 3, "/usr/local/errors.log");
    12. ?>


    PHP的日期和时间

    UNIX时间戳
    nix 时间戳 :
    自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数 .
    相关函数:
    time( ): 函数返回一个当前系统的时间戳
    mktime( ): 取得一个日期的 Unix 时间戳
    格式:int mktime(时[,分[,秒[,月[,日[,年[,is_dst区]]]]]]);
    注意:is_dst参数表示是否为夏时制,PHP5.10后此参数已废除。
    strtotime( ):将任何英文文本的日期时间描述解析为 Unix 时间戳
    格式:int strtotime ( string $time [, int $now ] )
    image.png
    image.png
    image.png
    在PHP中获取日期和时间
    getdate — 取得日期/时间信息
    格式:array getdate ( [int timestamp] )
    返回一个根据 timestamp 得出的包含有日期信息的结合数组。
    如果没有给出时间戳则认为是当前本地时间。数组中的单元如下
    image.png
    日期和时间的格式化输出

    image.png
    修改PHP的默认时区
    修改PHP的默认时区有两种方式:
    1、修php.ini配置文件: date.timezone = Etc/GMT+8
    2、date_default_timezone_set( ): — 设定用于一个脚本中所有日期时间函数的默认时区 。 如:date_default_timezone_set(“PRC”); //中国时区。
    3、date_default_timezone_get( ): — 获取当前时区

    使用微秒计算PHP脚本执行时间

    microtime — 返回当前 Unix 时间戳和微秒数
    格式:mixed microtime ( [bool get_as_float] )
    microtime() 当前 Unix 时间戳以及微秒数。
    本函数仅在支持 gettimeofday() 系统调用的操作系统下可用。
    如果调用时不带可选参数,本函数以 “msec sec” 的格式返回一个字符串,其中 sec 是自 Unix 纪(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。
    如果给出了 get_as_float 参数并且其值等价于 TRUE,microtime() 将返回一个浮点数。

    PHP中GD库的使用

    GD简介
    PHP 不仅限于只产生 HTML 的输出,还可以创建及操作多种不同格式的图像文件。
    PHP提供了一些内置的图像信息函数,也可以使用GD函数库创建新图像或处理已有的图像。
    目前GD2库支持GIF、JPEG、PNG和WBMP等格式。此外还支持一些FreeType、Type1等字体库。
    JPEG 是一种压缩标准的名字,通常是用来存储照片或者存储具有丰富色彩和色彩层次的图像。这种格式使用了有损压缩。
    PNG 是可移植的网络图像,对图像采用了无损压缩标准。
    GIF 原义是“图像互换格式”,是一种基于LZW算法的连续色调的无损压缩格式
    image.png