Hướng dẫn error in php - lỗi trong php

Trong bài này, chúng ta sẽ tìm hiểu về cách xử lý lỗi (error) trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.cách xử lý lỗi (error) trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.

1. Sử dụng hàm die() và exit() trong PHP

1.1. Hàm die() trong PHP

Hàm <?php $file=fopen("gochocit.txt","r"); ?> 5 giúp in thông báo lỗi và không làm dừng chương trình. Cú pháp của hàm <?php $file=fopen("gochocit.txt","r"); ?> 5:<?php $file=fopen("gochocit.txt","r"); ?> 5 giúp in thông báo lỗi và không làm dừng chương trình. Cú pháp của hàm <?php $file=fopen("gochocit.txt","r"); ?> 5:

die($message);

Ví dụ, đoạn code mở file bên dưới sẽ bị lỗi vì không tồn tại file <?php $file=fopen("gochocit.txt","r"); ?> 7., đoạn code mở file bên dưới sẽ bị lỗi vì không tồn tại file <?php $file=fopen("gochocit.txt","r"); ?> 7.

<?php $file=fopen("gochocit.txt","r"); ?> Kết quảWarning: fopen(gochocit.txt): Failed to open stream: No such file or directory in C:\xampp\htdocs\gochocit\index.php on line 2

Chúng ta có thể ngăn lỗi bằng cách kiểm tra file có tồn tại hay không và sử dụng hàm <?php $file=fopen("gochocit.txt","r"); ?> 5 để đưa ra thông báo về lỗi.<?php $file=fopen("gochocit.txt","r"); ?> 5 để đưa ra thông báo về lỗi.

<?php if(!file_exists("gochocit.txt")) { die("File is not exist!"); } else { $file = fopen("gochocit.txt", "r"); } ?> Kết quảFile is not exist!

Chúng ta có thể ngăn lỗi bằng cách kiểm tra file có tồn tại hay không và sử dụng hàm <?php $file=fopen("gochocit.txt","r"); ?> 5 để đưa ra thông báo về lỗi.

1.2. Hàm exit() trong PHP<?php $file=fopen("gochocit.txt","r"); ?> 9 trong PHP giúp xuất một thông báo và kết thúc (thoát) script hiện tại. Cú pháp:

exit(string $status = ?): void exit(int $status): void

Hàm <?php $file=fopen("gochocit.txt","r"); ?> 9 trong PHP giúp xuất một thông báo và kết thúc (thoát) script hiện tại. Cú pháp:status là một string thì sẽ in ra thông báo trước khi thoát. Nếu status là kiểu int (từ 0 đến 254) thì sẽ không in gì cả và thoát.

<?php //exit program normally exit; exit(); exit(0); //exit with an error code exit(1); exit(0376); //octal // exit and print message $filename = 'gochocit.com'; $file = fopen($filename, 'r') or exit("unable to open file ($filename)"); ?>

Nếu status là một string thì sẽ in ra thông báo trước khi thoát. Nếu status là kiểu int (từ 0 đến 254) thì sẽ không in gì cả và thoát.

2. Tùy chỉnh xử lý lỗi (custom error handler) trong PHPđịnh nghĩa một hàm xử lý lỗi với cú pháp như sau:

error_function($error_level, $error_message, $error_file, $error_line, $error_context)

Khi một lỗi xảy ra, chúng ta có thể tùy chỉnh xử lý lỗi và thông báo lỗi. Để làm việc này, chúng ta cần định nghĩa một hàm xử lý lỗi với cú pháp như sau:

    • Trong đó, là tên hàm. Các bạn có thể đặt lại tên hàm tùy ý miễn sao đúng theo quy tắt tên định danh (identifier) trong PHP.
    • error_function là tên hàm. Các bạn có thể đặt lại tên hàm tùy ý miễn sao đúng theo quy tắt tên định danh (identifier) trong PHP.: Đây là tham số bắt buộc, phải là kiểu integer. Tham số này là những error constants được định nghĩa trước.
    • $error_level: Đây là tham số bắt buộc, phải là kiểu integer. Tham số này là những error constants được định nghĩa trước.: Đây là tham số bắt buộc. Tham số này thông báo lỗi mà chúng ta muốn in ra.
    • $error_message: Đây là tham số bắt buộc. Tham số này thông báo lỗi mà chúng ta muốn in ra.: Đây là tham số tùy chọn, có thể có hoặc không. Tham số này được sử dụng để xác định tên file mà lỗi xảy ra.
    • $error_file: Đây là tham số tùy chọn, có thể có hoặc không. Tham số này được sử dụng để xác định tên file mà lỗi xảy ra.: Đây là tham số tùy chọn, có thể có hoặc không. Tham số này được sử dụng để xác định số dòng mà lỗi xảy ra.
    • $error_line: Đây là tham số tùy chọn, có thể có hoặc không. Tham số này được sử dụng để xác định số dòng mà lỗi xảy ra.: Đây là tham số tùy chọn, có thể có hoặc không. Tham số này được sử dụng để xác định một mảng bao gồm các biến và giá trị của chúng khi lỗi xảy ra.

$error_context: Đây là tham số tùy chọn, có thể có hoặc không. Tham số này được sử dụng để xác định một mảng bao gồm các biến và giá trị của chúng khi lỗi xảy ra.Warning: fopen(gochocit.txt): Failed to open stream: No such file or directory in C:\xampp\htdocs\gochocit\index.php on line 20 để thiết lập tùy chỉnh xử lý lỗi theo ý của mình. Cú pháp của hàm Warning: fopen(gochocit.txt): Failed to open stream: No such file or directory in C:\xampp\htdocs\gochocit\index.php on line 20:

set_error_handler("error_function");

Khi lỗi xảy ra, PHP sẽ tự xử lý lỗi theo cách của nó. Chúng ta cần sử dụng hàm Warning: fopen(gochocit.txt): Failed to open stream: No such file or directory in C:\xampp\htdocs\gochocit\index.php on line 20 để thiết lập tùy chỉnh xử lý lỗi theo ý của mình. Cú pháp của hàm Warning: fopen(gochocit.txt): Failed to open stream: No such file or directory in C:\xampp\htdocs\gochocit\index.php on line 20:error_function là tên của hàm xử lý lỗi mà chúng ta tự định nghĩa.

<?php //error handler function function customError($errno, $errstr, $errfile, $errline) { echo "<b>Error:</b> [$errno]: $errstr <b>in</b> $errfile <b>at line</b> $errline"; } //set error handler set_error_handler("customError"); //This will generate error echo($test); ?> Kết quả<?php $file=fopen("gochocit.txt","r"); ?> 0

Chúng ta có thể ngăn lỗi bằng cách kiểm tra file có tồn tại hay không và sử dụng hàm <?php $file=fopen("gochocit.txt","r"); ?> 5 để đưa ra thông báo về lỗi.

1.2. Hàm exit() trong PHPWarning: fopen(gochocit.txt): Failed to open stream: No such file or directory in C:\xampp\htdocs\gochocit\index.php on line 22 để thông báo lỗi.

<?php $file=fopen("gochocit.txt","r"); ?> 1

Hàm <?php $file=fopen("gochocit.txt","r"); ?> 9 trong PHP giúp xuất một thông báo và kết thúc (thoát) script hiện tại. Cú pháp:Warning: fopen(gochocit.txt): Failed to open stream: No such file or directory in C:\xampp\htdocs\gochocit\index.php on line 22 với tùy chỉnh xử lý lỗi. Ví dụ:

<?php $file=fopen("gochocit.txt","r"); ?> 2Kết quả<?php $file=fopen("gochocit.txt","r"); ?> 3

Chúng ta có thể ngăn lỗi bằng cách kiểm tra file có tồn tại hay không và sử dụng hàm <?php $file=fopen("gochocit.txt","r"); ?> 5 để đưa ra thông báo về lỗi.

1.2. Hàm exit() trong PHPerror_log trong file Warning: fopen(gochocit.txt): Failed to open stream: No such file or directory in C:\xampp\htdocs\gochocit\index.php on line 24. Nhưng nếu sử dụng hàm Warning: fopen(gochocit.txt): Failed to open stream: No such file or directory in C:\xampp\htdocs\gochocit\index.php on line 25 có thể giúp chúng ta gửi error logs đến nơi mà chúng ta cần lưu trữ. Ví dụ, chúng ta muốn ghi error logs đến vào Warning: fopen(gochocit.txt): Failed to open stream: No such file or directory in C:\xampp\htdocs\gochocit\index.php on line 26 trong PHP.

<?php $file=fopen("gochocit.txt","r"); ?> 4

Hàm <?php $file=fopen("gochocit.txt","r"); ?> 9 trong PHP giúp xuất một thông báo và kết thúc (thoát) script hiện tại. Cú pháp:Warning: fopen(gochocit.txt): Failed to open stream: No such file or directory in C:\xampp\htdocs\gochocit\index.php on line 25 có thể giúp gửi error logs đến mail hoặc một file nào khác. Các bạn có thể tham khảo thêm tại error_log PHP.

  • Nếu status là một string thì sẽ in ra thông báo trước khi thoát. Nếu status là kiểu int (từ 0 đến 254) thì sẽ không in gì cả và thoát.
  • 2. Tùy chỉnh xử lý lỗi (custom error handler) trong PHP
  • Khi một lỗi xảy ra, chúng ta có thể tùy chỉnh xử lý lỗi và thông báo lỗi. Để làm việc này, chúng ta cần định nghĩa một hàm xử lý lỗi với cú pháp như sau:
  • Trong đó,
  • error_function là tên hàm. Các bạn có thể đặt lại tên hàm tùy ý miễn sao đúng theo quy tắt tên định danh (identifier) trong PHP.

Chủ đề