zoukankan      html  css  js  c++  java
  • PHP学习3

    控制脚本执行顺序

    die(字符串)/exit(字符串)

    输出该字符串后,立即停止php的执行!即后续程序不再执行,包括后续的其他所有phphtml代码部分。

     

    exitdie的同义词。他们也可以不加字符串,而是直接停止。

     

    sleep$n)

    让程序停止运行指定的秒数。然后等待过了那个时间后,就继续运行!

     

    注意,其单位是

     

    文件加载

    综述和基本语法:

    1,有4个文件加载语句:include, require, include_once, require_once

    2,他们的使用形式完全一样,比如: include  “要加载的文件路径”; 或: include (“要加载的文件路径”);

    3,他们的含义也几乎完全一样:只是在加载失败时或是否重复加载这种情况,有所不同。

    4,他们可以载入phphtml文件;

     

    文件加载的路径问题:

    前提说明:以下的说明举例,以include为例,也适用于其他3个加载语句;

     

    3中路径形式可以使用:

     

    相对路径:

    是相对于当前网页文件所在的位置来定位某个被加载的文件位置,主要依赖以下2个特殊的路径符号:

    ./ :表示当前位置,即当前网页文件所在的位置(目录);

    ../ :表示上一级位置,即当前网页文件所在的位置的上一级位置(目录);

    我们需要用这2个符号来表达位置信息,比如:

    include  ‘./page1.php’; //表示当前网页文件所在位置的page1.php文件;

    include  ‘../page2.php’;

    include  ‘../ab/page3.html’;

     

    绝对路径:

    绝对路径又分2种:

    本地绝对路径:

    比如:

    include  “c:/d1/d2/p1.php”;   

    include  “f:/f1/abc/p2.html”;

    特别注意:我们其实几乎都不应该在代码中直接写这种本地绝对路径!

    但,其实我们这种本地绝对路径的写法是很常用的!

    那怎么做?示例如下:

     1 echo "<p>使用相对路径载入";
     2 include './page1.php';    
     3 
     4 
     5 echo "<p>使用绝对路径载入(方法1)";
     6 include __DIR__ . 'page1.php';    
     7 
     8 
     9 echo "<p>使用绝对路径载入(方法2)";
    10 $root = $_SERVER['DOCUMENT_ROOT'];    //获得当前站点的跟目录
    11 include $root . "day5" . 'page1.php';    

    在被载入文件中return语句的作用

    1,一个载入语句,如果载入成功,其实是有返回值的,为1,如果载入失败,则返回的是false

    (虽然我们通常不去使用该返回值)。

     

    但,如果被载入文件中有return语句,此时就有另外的机制和作用:

    2return语句此时的作用是终止载入过程——return语句的后续被载入文件的代码不再载入。

     运行结果为:

    3return语句也可以用于该被载入文件载入时返回一个数据,形式为:return  XX数据;

     

    错误的分级

    php语言中,将各种错误进行了不同级别的分类归纳,并形成大约有10几个级别的错误,这就是技术层面的错误分级。

    每一级别的错误,都有一个代号,这个代号其实也就是一个系统内部的常量而已。比如:

     

    系统常见错误:

    E_ERROR 致命错误

    E_WARNING: 警告性错误

    E_NOTICE: 提示性错误

    用户可自定义的错误:

    E_USER_ERROR 自定义致命错误

    E_USER_WARNING: 自定义警告性错误

    E_USER_NOTICE: 自定义提示性错误

    其他:

    E_STRICT: 严谨性语法检查错误

    E_ALL 代表所有错误

    运行结果为:

     

    自定义触发:

    当我们处理某些数据的时候,本来数据本身是没有错误的,但根据具体应用(业务)的需要,会要求数据满足某种条件,而该数据并不满足的时候,我们就可以在程序中主动去触发(创建)一个错误,以表明该数据的非法性

    语法形式:

    trigger_error(“错误提示信息内容”,  3用户错误代号之一);

    其中触发了用户的致命错误(E_USER_ERROR,也会终止程序的后续执行。

     

    错误报告的显示问题

    所谓错误报告,就是显示在网页上的错误提示内容!

     

    有关错误报告,有2个问题需要处理:

     

    是否显示错误报告(display_errors)

    2种做法可以来设定是否显示:

    做法1

    php.ini文件中,设定display_erros的值,为on(显示),或为off(不显示)

     

    可以修改为:

     

    当然,作为开发阶段,我们都应该显示错误信息。

     

    注意:前提条件都是我们apache已经装载了php.ini文件——这一点,需要在apache的配置文件httpd.config中加入如下一行:

    PHPIniDir  “php.ini文件的了位置(路径)

    比如:

     

     

    方法2

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

     

    当然,如果设置为1,就是显示!

     

    注意:

    1,不管哪种形式,该单词是一样的:display:errors

    2,使用php.ini配置,影响的是全局(即所有php网页);

    3,在某个脚本代码中使用ini_set()设置,就只影响该脚本代码本身——这是常用的方式。

    4,脚本中的设置优先于php.ini中的设置。

     

    显示哪些级别的错误报告(error_reporting)

    显然,前提是“display_errors”设置为On(1),表示可以显示。

     

    显示哪些级别的错误报告,也有2个做法:

    做法1:在php.ini文件中;

     

    这个值目前代表所有错误,都显示。

    修改为:

     此时就只显示E_NOTICE级别的错误

    更多示例为:

    error_reporting = E_NOTICE | E_WARING | E_ERROR //显示该3种;

    error_reporting = E_ERROR | E_USER_ERROR //显示该2种严重错误

    要想代表真正的所有错误,应该写为:E_ERROR | E_STRICT,图示如下:

     

     

    做法2:在当前的脚本代码中:

    php.ini中设置其实是一样,举一些例子如下:

    ini_set(“error_reporting”,  E_NOTICE); //就显示该一个级别的错误

    ini_set(“error_reporting”,  E_NOTICE | E_WARNING), //显示2个级别

    ini_set(“error_reporting”,  E_NOTICE | E_WARNING | E_ERROR), //显示3个级别

    ini_set(“error_reporting”,  E_ALL | E_STRICT), //这才代表显示所有错误!

     

    错误日志的记录问题

    错误日志其实就是错误报告,只是它会写入文件中,此时就称为错误日志!

     

    也有2个问题,每个问题也有2种做法:

     

    是否记录log_errors

    php.ini中:

    log_errors = On    Off

     

    脚本中:

    ini_set(“log_erros”,  1);   0

     

    补充一句:

    1ini_set(“php配置项, 值) //用于脚本中设置php.ini中是某项的值。

    2,$v1 = ini_get(“php配置项”) //用于获取php.ini中是某项的值

     

    记录到哪里error_log

    一般就只有2个写法:

    写法1:直接使用一个文件名,此时系统会自动在每个文件夹下都建立该文件名,并用其记录该文件夹下的所有网页文件发生的错误信息。

     

    然后执行一个有错误的网页,并可以观察到:

     

    其中的内容大约为:

     

     

     

    写法2:使用一个特殊的名字“syslog”,则此时所有错误信息都会记录到系统的日志文件中。

    系统日志文件在这里:控制面板》管理工具》事件查看器》window日志》应用程序:

     

     

    然后执行一个有错误的网页,并可以观察到:

     

     

     

    自定义错误处理器

    什么叫错误处理器?

    就是一旦发生错误,用来处理该错误的一种机器”——其实就是一个函数。

     

    自定义错误处理,就是指:

    让系统不要去处理错误了,而完全由我们(开发者)来对错误进行处理:显示和记录。

     

    做法,其实非常简单,就2步:

     

    第一步:

    设定要用于处理错误的函数名!

    set_error_handler(“f1”);

    第二步:

    去定义该函数!

    function f1(){

    //这里可以任意写代码:自然正常是去显示错误报告,和记录错误日志。

    }

     

  • 相关阅读:
    sqlmap基础使用(以sqli—labs第一关为例)
    IIS、Apache、Nginx日志记录的各个字段内容与含义
    建站+阿里云服务器上传个人制作网页
    SQL server 2005 在Windows server 2003上面的安装
    VMware里kali虚拟机的安装
    第三章web安全基础—http协议及burpsuite基本使用(brupsuite导入证书支持https访问)
    第三章web安全基础—互联网注册网站相关小知识
    第三章web安全基础—IIS发布dvbbs(动网论坛)及SQL2005问题解决
    根据现有目录批量创建文件夹
    PL/SQL通过存储过程为相同数据添加序号
  • 原文地址:https://www.cnblogs.com/liqiantu/p/5833642.html
Copyright © 2011-2022 走看看