日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

PHP基础3--文件加载-错误处理

發(fā)布時間:2025/3/15 php 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP基础3--文件加载-错误处理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

主要:

  1-文件加載

  2-錯誤處理


?


文件加載

  文件加載語句

    1)?4個文件加載語句:include,? require,?? include_once,??? require_once

    2)?使用形式相同。include “要加載的文件完整路徑”;? 或 ?include(“要加載的文件完整路徑”);??

        如: include "d:/index.php";

    3) ? 可以載入的文件: php 或 html文件

  路徑

    1) 相對路徑: 相對于當(dāng)前網(wǎng)頁文件所在的位置來定位某個被加載的文件位置 

      ./?? :?? 表示當(dāng)前位置,即當(dāng)前網(wǎng)頁文件所在的位置(目錄);
      ../?? :??? 表示上一級位置,即當(dāng)前網(wǎng)頁文件所在的位置的上一級位置(目錄);

    2)絕對路徑

      本地絕對路徑; 如: include "d:/demo/index.php";

      網(wǎng)絡(luò)絕對路徑; ? 如: include "http://www.baidu.com/demo/index.php"

    3)? 不寫路徑,直接文件名

      實質(zhì)是加載當(dāng)前目錄下的指定文件名

      如: include "index.php";? //PHP語言引擎會在當(dāng)前網(wǎng)頁目錄下找該文件 ?

  文件載入執(zhí)行過程

step 1: 從include|require 語句處退出PHP腳本模式(進入html代碼模式)
step 2:載入include|require 語句所設(shè)定的文件中的代碼,并執(zhí)行
step 3:退出html模式重新進入php腳本模式,繼續(xù)之后的代碼

  include,include_once, require,require_once的區(qū)別

  1) include 與 require 的區(qū)別, 或 include_once與require_once的區(qū)別

    include或include_once 載入文件失敗時(即沒有找到該文件),報“提示錯誤“,然后繼續(xù)執(zhí)行后續(xù)代碼

    ? ?require 或 require_once載入文件失敗時,報錯并立即終止執(zhí)行。

?????????????? 一般,require用于在程序中,后續(xù)的代碼依賴于載入的文件的時候。

  2) inlcude 與 include_once,? 或require與require_once的區(qū)別

?    include 或 require載入的文件不判斷是否重復(fù),只要有include或 require語句,就會載入一次---即可能重復(fù)載入。
?? ?   include_once或require_once載入的文件會有內(nèi)部判斷機制是否“前面代碼“已經(jīng)載入過,如果載入過,就不再載入
??????????????  如:? 如網(wǎng)頁中常見兩邊有相同的廣告,就是用include

  被載入文件中return的使用

    1) include,require,include_once,require_once載入語句,如果載入成功返回1,載入失敗返回false

    2)? 如果被載入的文件中有return, 則在該return后的該文件內(nèi)容不被載入 --終止載入

      可以用于: 被載入文件給載入文件返回一個數(shù)據(jù)

錯誤處理

?  錯誤分類

  1) 語法錯誤

    如果語法有錯誤,就會立即報錯,并且不會去執(zhí)行程序

  2) 運行時錯誤

    在程序語法檢查通過后,開始運行程序,并在此過程中遇到的錯誤

      常見3類錯誤: 提示性錯誤,警告性錯誤,致命錯誤

  3) 邏輯錯誤

    程序本身可以正常執(zhí)行,沒有報錯。但并不是想要的結(jié)果。

  錯誤分級

  1) 技術(shù)層面的錯誤分級: PHP語言中,將各種錯誤進行了不同級別的分類歸納

    每一級別的錯誤,都有一個“代號”,這個代號是系統(tǒng)內(nèi)部的一個“常量”

  2)系統(tǒng)常見錯誤

      ?E_ERROR:??????? 致命錯誤
      ?E_WARNING:??? 警告性錯誤
       E_NOTICE:????? 提示性錯誤

  3) 用戶自定義錯誤

    E_USER_ERROR:?????????? 自定義致命錯誤
    E_USER_WARNING:??? 自定義警告性錯誤
    E_USER_NOTICE:??????? 自定義提示性錯誤

  4) 其他

    E_STRICT:???? 嚴(yán)謹(jǐn)性語法檢查錯誤
    E_ALL: ?? ??? ?? 代表所有錯誤

  詳細(xì)參考手冊: 函數(shù)參考》影響PHP行為的擴展》錯誤處理和日志記錄》預(yù)定義常量

1 <?php 2 function getBinStr($e) { 3 $s = decbin($e); //這是一個二進制數(shù)字字符串 4 /* 5 str_pad($str1,長度n,$str2,位置w)函數(shù): 6 將字符串$str1,用字符串$str2填充到指定的長度n, 7 可以指定填充的位置w,左邊填充還是右邊填充 8 */ 9 $s1 = str_pad($s,16,"0",STR_PAD_LEFT); 10 return $s1; 11 } 12 echo "<pre>"; 13 echo "E_EEROR = ".E_ERROR . "\t\t其對應(yīng)二進制值為: " . getBinStr(E_ERROR); //1 14 echo "<br />E_WARNING = ".E_WARNING. "\t\t其對應(yīng)二進制值為: " . getBinStr(E_WARNING); //2 15 echo "<br />E_NOTICE = ".E_NOTICE. "\t\t其對應(yīng)二進制值為: " . getBinStr(E_NOTICE); //8 16 echo "<br />E_USER_NOTICE = ".E_USER_NOTICE. "\t\t其對應(yīng)二進制值為: " . getBinStr(E_USER_NOTICE); //1024 17 echo "<br />E_ALL = ".E_ALL. "\t\t其對應(yīng)二進制值為: " . getBinStr(E_ALL); //32767 18 echo "</pre>"; 19 ?> 查看錯誤分級對應(yīng)的二進制數(shù)測試

  錯誤觸發(fā)

  1) 方式1: 系統(tǒng)觸發(fā)

    典型錯誤3種:?

      E_NOTICE:????? 提示性錯誤:? 會輸出錯誤提示,并繼續(xù)執(zhí)行后續(xù)代碼;如:使用不存在的變量或常量

      E_WARNING:??? 警告性錯誤:? 會輸出錯誤提示,并繼續(xù)執(zhí)行后續(xù)代碼; 如: include載入一個不存在的文件:

      E_ERROR:??????? 致命錯誤: 導(dǎo)致程序無法執(zhí)行后續(xù)語句;? 如: 一個不存在的函數(shù)!!

  2) 方式2: 自定義觸發(fā)

    1) 概念: 當(dāng)處理某些數(shù)據(jù)時,數(shù)據(jù)本身沒有錯誤,但根據(jù)具體應(yīng)用(業(yè)務(wù))的需要,會要求數(shù)據(jù)滿足某種條件,而該數(shù)據(jù)并不滿足的時候,可以在程序中“主動”去觸發(fā)(創(chuàng)建)一個錯誤,以表明該數(shù)據(jù)的“非法性”。

    2) 語法形式: trigger_error(“錯誤提示信息內(nèi)容”,3種用戶錯誤代號之一);  

      如果觸發(fā)了用戶的致命錯誤(E_USER_ERROR),會終止程序的后續(xù)執(zhí)行

  錯誤報告的顯示

  1) 錯誤報告: 顯示在網(wǎng)頁上的錯誤提示內(nèi)容

  2) 是否顯示錯誤報告 ?? display_errors

    方式1:全局設(shè)置

      修改配置文件php.ini 的配置項 display_errors = On; //表示顯示 如果是Off表示關(guān)閉

    方式2: 局部設(shè)置

      在php腳本文件中使用函數(shù)ini_set()來對它進行設(shè)置; 如 ini_set("display_errors",0); //不顯示錯誤報告

      該方式設(shè)置要優(yōu)先于全局設(shè)置

  3) 顯示哪些級別的錯誤報告?? error_reporting

    前提: display_errorrs=On;

    方式1: 全局設(shè)置

      修改配置文件php.ini 的配置項error_reporting,?? 如 :?error_reporting = E_NOTICE | E_WARNING | E_ERROR

    方式2: 局部設(shè)置

      在php腳本文件中使用函數(shù)ini_set()來對它進行設(shè)置 , 如init_set(“error_reporting”,E_NOTICE | E_WARNING | E_ERROR),

  錯誤日志的記錄

  1)是否記錄錯誤日志?? log_errors

    方式1: 全局設(shè)置

      修改配置文件php.ini 的配置項log_errors,?? 如 : log_errors= On;? //記錄錯誤日志

    方式2: 局部設(shè)置

      在php腳本文件中使用函數(shù)ini_set()來對它進行設(shè)置 , 如init_set(“l(fā)og_errors”,1);//記錄錯誤日志

      獲取php.ini配置項: ini_get("配置項");? //獲取php.ini的指定配置項值

  2)記錄到哪里? error_log

    可以指定位置或記錄到系統(tǒng)日志中

    指定位置文件中:直接使用文件名,系統(tǒng)會自動在文件夾下都建立該文件名,并用其記錄該文件夾下的所有網(wǎng)頁文件發(fā)生的錯誤信息

        ini_set("error_log", "myError.txt"); ? //如果有錯誤,將記錄在myError.txt文件中

    寫入系統(tǒng)日志中:? ini_set("error_log", "syslog");//所有錯誤日志記錄到系統(tǒng) 日志文件 中

  自定義錯誤處理器

  1)錯誤處理器:?發(fā)生錯誤,用來處理該錯誤的一種方法。實質(zhì)就是一個函數(shù)

  2) 自定義錯誤處理器: 將原本有系統(tǒng)處理錯誤變?yōu)殚_發(fā)者自定義對錯誤顯示和記錄處理

  3) 分2步:

    step 1:? 設(shè)定用于處理錯誤的函數(shù) set_error_handler("函數(shù)名");? 如 set_error_handler('myError');

    step 2: 聲明定義處理錯誤的函數(shù)。 如 function myError($errCode,? $errMsg, $errFile,? $errLine) { //錯誤處理? }

1 <?php 2 //自定義錯誤處理器 3 //第一步: 設(shè)定要作為錯誤處理的函數(shù)名 4 set_error_handler("my_error_handler"); 5 6 //第2步: 定義函數(shù) 7 /** 8 * 自定義錯誤處理函數(shù) 9 * 該函數(shù)不要在程序中調(diào)用,一發(fā)生錯誤會被自動調(diào)用,而且會傳入該4個實參數(shù)據(jù) 10 * @param string $errCode 錯誤代號(級別) 11 * @param string $errMsg 錯誤信息的內(nèi)容 12 * @param string $errFile 發(fā)生錯誤的文件名 13 * @param int $errLine 代表發(fā)生錯誤的行號 14 * @return void 15 */ 16 function my_error_handler($errCode,$errMsg,$errFile,$errLine) { 17 $str = ''; 18 $str .= "<p><b><font color='red'>錯誤:</font></b>"; 19 $str .= "<br />錯誤代號是:".$errCode; 20 $str .= "<br />錯誤內(nèi)容是:".$errMsg; 21 $str .= "<br />錯誤文件是:".$errFile; 22 $str .= "<br />錯誤行號是:".$errLine; 23 $str .= "<br />發(fā)生的時間:".date("Y-m-d H:i:s"); 24 $str .= "</p>"; 25 echo $str; //輸出該“構(gòu)建”的錯誤完整處理結(jié)果 26 //可以將該內(nèi)容寫入到某個文件去,既記錄錯誤日志 27 } 28 29 //以下是錯誤代碼 30 echo "<br />aaaa"; 31 echo $v1; //使用不存在的變量 32 echo C1; // 使用不存在的常量 33 echo "<br />bbbb"; 34 echo "<hr />"; 點擊查看自定義錯誤處理器測試

轉(zhuǎn)載于:https://www.cnblogs.com/yangp67/p/8025738.html

總結(jié)

以上是生活随笔為你收集整理的PHP基础3--文件加载-错误处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。