控制脚本执行顺序

  1. die(字符串)/exit(字符串):

    输出该字符串后,立即停止PHP的执行!即后续代码不再执行。

  2. sleep($n)

    程序停止运行指定的秒数。然后等待过了那个时间后,就继续执行。(单位是秒)

文件加载

四种方式:
include, require, include_once, require_once

使用的时候几乎完全一样,只是在加载失败时或者重复加载时,有所不同。

文件路径

  • 分为三种绝对路径、相对路径和“无路径”

    1.相对路径:就是相对于当前目录下的路径

    2.绝对路径:就是从根目录开始的路径

    3.无路径:只是给出文件名(不推荐)

  • 四种载入的区别(此处只列举一种,其他大抵相同)

      include和include_once的区别:include载入的文件不判断是否重复,只要有include语句,就会载入一次——即此时可能导致重复载入。include_once载入的文件会有内部判断机制是否“前面代码”已经载入过,如果载入过,就不再载入。

错误处理

错误的分类

通常分为3种:

1.语法错误(运行前检查语法)

2.运行时错误(在语法检查通过后,开始运行程序并在次过程中遇到的错误)

运行时错误也分为3种1.提示型错误2.警告性错误3.致命性错误

3.逻辑错误

程序本身没有错误,确等不到想要的结果

错误的分级

错误的分级都是指技术层面的错误分级,每一个级别的错误,都有一个“代号”(系统内部的常量)

系统常见的错误:
E_ERROR:致命错误
E_WARNING:警告性错误
E_NOTICE: 提示性错误用户自定义的错误
E_USER_ERROR: 自定义致命错误
E_USER_WARING: 自定义警告性错误
E_USER_NOTICE:自定义提示性错误其他:
E_STRICT:严谨性语法检查错误
E_ALL:代表“所有错误”

注:错误的等级可以参考手册:函数参考->错误处理->预定义常量

错误的触发

  1. 系统触发

    三种典型方式:

    1. E_NOTICE:提示性错误,并继续执行后续代码

    2. E_WARNING:警告性错误,继续执行程序

    3. E_ERROR:致命性错误,程序不再执行

2.自定义触发

语法形式:trigger_error("错误提示信息内容",3种用户错误代号之一);

其中触发了用户的致命性错误(E_USER_ERROR),程序仍会终止运行。

错误报告

错误报告:就是在网页上的错误提示内容!

需要处理的有两个

1.是否显示错误报告(display_errors):

  • 在php.ini文件中,设定display_errors的值,为on(显示),或为off(不显示),大概在500多行

  • 直接在php的脚本文件中设置使用函数ini_set()来对其进行设置

      ini_set("display_errors",0);//不显示错误报告
  1. 显示哪些级别的错误报告(error_reporting):

    两种做法:

    1.在php.ini中设置error_reporting = E_ALL | E_STRICT,此时代表所有错误都显示

    可以修改为 error_reporting=E_NOTICE此时只显示E_NOTICE级别的错误

     //显示该3种;error_reporting = E_NOTICE | E_WARING | E_ERROR//显示该2种严重错误error_reporting = E_ERROR | E_USER_ERROR

    2.当前脚本代码中:

     //就显示该一个级别的错误ini_set(“error_reporting”,  E_NOTICE);  //显示2个级别ini_set(“error_reporting”,  E_NOTICE | E_WARNING),//显示3个级别ini_set(“error_reporting”,  E_NOTICE | E_WARNING | E_ERROR),//这才代表显示所有错误!ini_set(“error_reporting”,  E_ALL | E_STRICT),  

错误日志的记录

  • 是否记录 错误日志 为只写的

      php.ini中log_errors = On 或者 Off当前脚本中:ini_set("log_errors",1)//或者0
  • 记录路径 error_log
    1.直接使用文件名

      //会为每个文件夹都创建一个error.txtini_set("error_log","error.txt");

    2.使用系统的日志文件

      ini_set("error_log","syslog");//记录到系统的日志文件中

自定义错误处理器

错误处理器:就是一旦发生错误,用来处理该错误的一种“机器”---就是一个函数。

自定错误处理,就是让系统不再去处理错误,完全由开发者来对错误进行处理,显示和记录

做法:

第一步:

设定要用于处理错误的函数名!
set_error_handler("my_error_handler");

第二部:

定义该函数

function my_error_handler($errCode, $errMsg, $errFile, $errLine){//处理相关操作$str = "";$str .= "<p><font color='red'>报告大王,发生错误:</font>";$str .= "<br/>错误代号为:".$errCode;$str .= "<br/>错误内容为:".$errMsg;$str .= "<br/>错误文件为:".$errFile;$str .= "<br/>错误内行号为:".$errLine;$str .= "<br/>发生时间为:".date("Y-d-m H:i:s");$str .= "</p>";echo $str; //输出自定义错误完整的处理结果
}

转载于:https://www.cnblogs.com/onefiter/p/5844497.html

PHP基础知识之文件加载相关推荐

  1. php基础语法(文件加载和错误)

    文件加载 有4个文件加载的语法形式(注意,不是函数): include,  include_once,  require, require_once; 他们的本质是一样的,都是用于加载/引入/包含/载 ...

  2. Python基础知识之pandas加载本地txt格式或csv格式的数据

    文章目录 前言 一.pandas是什么? 二.使用步骤 1.读取txt格式的数据 2.读取CSV格式的数据 三.总结 前言 今天需要使用pytorch处理自己的数据,由于数据存储格式为txt和csv, ...

  3. java class文件 代码_java_基础——用代码编译.java文件+加载class文件

    java_基础--用代码编译.java文件+加载class文件 java_基础--用代码编译.java文件+加载class文件 [简单编译的流程] package com.zjm.www.test; ...

  4. 【Docker镜像文件加载原理生产中重新制作并提交镜像文件案例演示】

    一.知识回顾 之前的内容都帮你整理好了,在这里哟! [0.Docker相关目录文章整理,可自行查看,包含多节内容] [1.Docker详细安装部署&阿里镜像地址配置] [2.Docker架构& ...

  5. AE基础界面设置和旋转加载案例

    AE基础界面设置和旋转加载案例 一.AE作用 AE:运用动效展示对象:程序员.客户.包装作品 程序员:得到动效数据和素材,更深层的理解项目细节,提高开发效率和质量 客户:能直观看到App最后开发的效果 ...

  6. 用 C 语言开发一门编程语言 — 字符串与文件加载

    目录 文章目录 目录 前文列表 字符串 读取字符串 注释 文件加载函数 命令行参数 打印函数 报错函数 源代码 前文列表 <用 C 语言开发一门编程语言 - 交互式解析器> <用 C ...

  7. 当心异步刷新后的脚本文件加载

    重现问题 我们现在编写一个示例来重现一个异步刷信的问题. 首先,我们建立一个名为"ScriptHandler.ashx"的Generic Handler,它的作用是模拟一个脚本文件 ...

  8. WPF 从文件加载字体

    原文:WPF 从文件加载字体 版权声明:博客已迁移到 http://lindexi.gitee.io 欢迎访问.如果当前博客图片看不到,请到 http://lindexi.gitee.io 访问博客. ...

  9. 插件化基础(二)——加载插件资源

    系列文章目录: 插件化基础(一)--加载插件的类 插件化基础(二)--加载插件资源 插件化基础(三)--启动插件组件 一.了解 Asset 和 Resources 我们加载的资源通常来自 res 和 ...

最新文章

  1. HTML5调用手机的Datepicker(日期选择器)
  2. python学起来难吗-python学起来难吗
  3. CSS的!important属性修改权重
  4. Oracle 数据库连接失败问题
  5. psp能装安卓软件吗_王思聪:翻译软件能翻译出文化吗?
  6. .NET Framework 类库: Uri类
  7. 电脑打开html不显示图片,网页不显示图片,详细教您网页不显示图片怎么解决
  8. WCF学习之旅—WCF寄宿前的准备(八)
  9. 第二章 指南(4.3)添加 View
  10. input和output哪个是充电_input是什么接口?告诉大家这个小常识,以后音箱接线更容易...
  11. 计算机等级考试三级教材,计算机等级考试三级过关技巧
  12. html5手机常亮,vue开发的webapp中的手机物理返回键,以及屏幕常亮处理
  13. 如何使用 Firefox 阻止指纹识别的侵扰?
  14. 对棋盘完美覆盖问题证明过程的质疑及其解决
  15. c语言乘法怎么手写,发现要实现手写乘法计算过程也让我头疼
  16. 路由器手机测试网速的软件,4个实用的无线路由器WiFi检测工具,让你网速又快又稳定...
  17. 简单计算机病毒黑屏,电脑被木马病毒侵袭,黑屏了怎么处理
  18. python生成PDF报告
  19. 【2021年度总结】不断学习的卡卡
  20. SWUST OJ 980

热门文章

  1. 变形二叉树中节点的最大距离(树的最长路径)——非递归解法
  2. javascript的内置对象
  3. 报错:‘nodemon‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  4. JavaScript学习(六十一)—json字符串的解析和JS 对象的序列化
  5. 别看人家日子过得很轻松的样子,实际都很难,相信吗?
  6. 手机有没有必要经常更新系统?
  7. CentOS系统是什么
  8. 细节真的能决定成败么?
  9. 为什么越来越多的人都不喜欢用信用卡?
  10. 和公婆住在一起是什么体验?