《php与mysql权威指南》第二部分 (3)

第9章 php的错误、异常处理和调试
9.1 常见错误类型
  语法错误:缺少分号,括号不完整等
  逻辑错误:
  未定义错误:未定义变量或常量,未定义有类或函数
  环境错误:
    windows下路径分隔符'\',linux下路径分隔符'http://www.likecs.com/'
    操作系统错误
    php版本错误
    PHP配置错误
  运行错误:数据库不存在|数据库表不存在|正包含的文件不在include_path中|PHP服务器进程没有权限访问|网络上的主机因某种原因不允许被访问
9.2 错误处理机制
  错误级别列表
    E_ALL:所有错误和警告
    E_COMPILE_ERROR:编译错误
    E_COMPILE_WARNING:编译警告
    E_CORE_ERROR:内部错误
    E_CORE_WARNING:启动时警告
    E_ERROR:严重错误,不可恢复
    E_NOTICE:运行代码字啊操作一些位置的动作
    E_PARSE:编译时解析错误
    E_RECOVERABLE_ERROR:被用户自定义的错误处理程序所捕捉
    E_SCRICT:版本迁移
    E_USER_ERROR:用户定义错误
    E_USER_NOTICE:用户定义通告
    E_USER_WARNING:用户定义警告
    E_WARNING:操作错误
    指令:error_reporting=E_ALL
  错误处理函数
    trigger_error($error_msg[,$error_type]):触发自定义的错误信息函数
  自定义错误页面:用header()|include()来进一步实现错误页面跳转|引用
  错误日志:
    初始化php日志文件:void define_syslog_varialbles(void),使用openlog(),closelog(),syslog()等日志函数时所必需的
    打开日志连接:openlog(ident,option,facility)
    关闭日志连接:closelog(void)
    向日志目标发送消息:syslog(priority,message)
9.3 异常处理
  异常处理的步骤
    应用程序尝试做一些操作
    如果尝试失败,则异常处理特性抛出一个异常
    指定的处理器捕获该异常,完成必要的任务
    异常处理特性清除在尝试期间占用的资源
  PHP基本异常类:exception
    内置方法:
      getMessage()
      getCode()
      getFile()
      getLine()
      getTrace():返回一个包含产生异常代码的回退路径的数组
      getTraceAsString():返回一个包含产生异常代码的回退路径的数组并格式化成字符串
      __toString():显示一个exception对象,并给出以上所有方法提供的信息,可以重载
  try、throw、catch
    try:使用的异常函数位于try代码块内,如果没有触发异常,则代码继续执行,否则抛出异常
    throw:规定如何触发异常
    catch:捕获异常并创建一个包含异常信息的对象
    示例:
      -----
      <?php
      function checkNum($num){
        if($num>1){
          throw new Exception('不能大于1');
        }
        return true;
      }
      try{
        checkNum(2);
      }
      catch(Exception $e){
        echo 'Message:'.$e->getMessage();
      }
      ?>
      -----
  创建自定义的exception类
    必须是exception类的扩展,继承exception所有属性,并添加自定义函数
  多个异常:if else|switch
  重新抛出异常:对用户隐藏系统错误,再次抛出友好的消息异常
  设置顶层异常处理器:set_exception_handle()-->可设置处理所有未捕获异常的用户自定义函数
  异常的规则
    需要进行异常处理的代码放在try内
    每个try或throw代码块必须至少拥有一个对应的catch代码块
    使用多个catch代码块可捕获不同种类的异常
    可以在try内的catch代码块中再次抛出异常(re-thrown)
    如果抛出异常,必须捕获它
9.4 使用Xdebug进行调试
  调试函数echo print_r() var_dump() printf() exit()等函数
  Xdebug一款开源的php调试程序
第10章 PHP与html交互
10.1 PHP和web表单
  表单基本操作
  表单安全性
    验证表单输入
    过滤表单数据
    全局变量设置:register_globals
  常用表单数据验证方法
    姓名验证:用正则
    日期验证:
    email验证
    密码验证
10.2 通过php上传文件
  PHP文件上传资源指令:php.ini文件
    file_uploads
    upload_tmp_dir
    upload_max_filesize
    post_max_size
    max_input_time
    memory_limit
    max_execution_time
  上传错误信息:$_FILE['name']['error']

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjxwd.html