Hướng dẫn how do i handle php errors? - làm cách nào để xử lý lỗi php?

Một ứng dụng PHP có thể tạo ra nhiều cấp độ thu nhập và lỗi khác nhau trong quá trình thực hiện. Có thể thấy những lỗi này là điều cần thiết cho các nhà phát triển đang cố gắng khắc phục sự cố ứng dụng sai. Tuy nhiên, các nhà phát triển thường gặp rắc rối khi cố gắng hiển thị lỗi từ các ứng dụng PHP của họ. Thay vào đó, các ứng dụng của họ chỉ im lặng thất bại.

Hướng dẫn how do i handle php errors? - làm cách nào để xử lý lỗi php?

Nếu bạn gặp sự cố với ứng dụng web PHP của mình và cần hiển thị tất cả các lỗi và cảnh báo, bạn đang ở đúng nơi. Trong hướng dẫn này, chúng tôi sẽ giải thích tất cả các cách khác nhau để kích hoạt các lỗi và cảnh báo PHP. Chúng tôi cũng sẽ thảo luận về cách viết các lỗi vào tệp nhật ký và thậm chí thu thập chúng thông qua tính năng theo dõi lỗi truy xuất.

Nhanh chóng hiển thị tất cả các lỗi PHP

Cách nhanh nhất để hiển thị tất cả các lỗi và cảnh báo PHP là thêm các dòng này vào tệp mã PHP của bạn:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

Những dòng mã này làm chính xác?

Hàm ini_set sẽ cố gắng ghi đè cấu hình được tìm thấy trong tệp PHP INI của bạn.

Display_errors và Display_startup_errors chỉ là hai trong số các chỉ thị có sẵn. Chỉ thị Display_errors sẽ xác định xem các lỗi sẽ được hiển thị hoặc ẩn cho người dùng. Thông thường, chỉ thị dispay_errors nên được tắt sau khi phát triển.

Tuy nhiên, Display_startup_errors là một chỉ thị riêng biệt vì Display_errors không xử lý các lỗi sẽ gặp phải trong chuỗi khởi động PHP. Danh sách các chỉ thị có thể được ghi đè bởi hàm ini_set được tìm thấy trong tài liệu chính thức.

Thật không may, hai chỉ thị này đã giành chiến thắng có thể hiển thị các lỗi phân tích cú pháp như thiếu dấu chấm hoặc thiếu niềng răng. Trong trường hợp này, cấu hình PHP INI phải được sửa đổi.these two directives won’t be able to display parse errors such as missing semicolons or missing curly braces. In this case, the PHP ini configuration must be modified.

Định cấu hình php.ini để hiển thị tất cả các lỗi

Nếu việc thêm một số lỗi mã PHP không hiển thị trong trình duyệt trong quá trình thử nghiệm, thì cấu hình PHP INI có một số chỉ thị bổ sung để xử lý việc này.

display_errors = on

Chỉ thị Display_errors phải được đặt thành trên On On trên tệp PHP INI. Điều này sẽ hiển thị tất cả các lỗi bao gồm các lỗi cú pháp hoặc phân tích cú pháp không thể được hiển thị bằng cách chỉ gọi hàm ini_set trong mã PHP. Tệp PHP INI có thể được tìm thấy trong đầu ra được hiển thị của hàm phpinfo () và được dán nhãn tệp cấu hình được tải. Chỉ thị này trong cấu hình INI phải được đặt thành TẮT, nếu ứng dụng web đang được sản xuất.

Hiển thị lỗi PHP thông qua cấu hình .htaccess

Các nhà phát triển thường có quyền truy cập vào các tệp thư mục. Chỉ thị hiển thị các lỗi PHP cũng có thể được bật hoặc tắt bằng cách sử dụng tệp .htaccess nằm trong thư mục gốc hoặc thư mục công khai của dự án.

php_flag display_startup_errors on
php_flag display_errors on

Tương tự như những gì sẽ được thêm vào mã PHP để hiển thị các lỗi PHP, .htaccess cũng có các chỉ thị cho display_startup_errors và display_errors. Ưu điểm của việc hiển thị hoặc vô hiệu hóa các thông báo lỗi theo cách này là phát triển và sản xuất có thể có các tệp .htaccess khác nhau, trong đó việc sản xuất ngăn chặn việc hiển thị các lỗi.

Tùy thuộc vào tệp bạn có quyền truy cập và cách bạn triển khai và cấu hình máy chủ, bạn có thể muốn định cấu hình Display_errors trong .htaccess hoặc tệp PHP.INI của bạn. Nhiều nhà cung cấp dịch vụ lưu trữ sẽ không cho phép bạn sửa đổi tệp Php.ini của mình để bật Display_errors.

Trong tệp .htaccess, nhật ký lỗi tùy chỉnh cũng có thể được bật miễn là thư mục nhật ký hoặc tệp nhật ký có thể ghi được bởi máy chủ web. Tệp nhật ký có thể là một đường dẫn tương đối đến nơi đặt .htaccess hoặc nó có thể là một đường dẫn tuyệt đối như/var/www/html/trang web/công khai/nhật ký.

php_value error_log logs/all_errors.log

Bật các cảnh báo và thông báo chi tiết

Đôi khi, các cảnh báo dường như không ảnh hưởng đến ứng dụng khi bắt đầu sẽ gây ra một số lỗi gây tử vong trong một số điều kiện nhất định. Những cảnh báo này phải được sửa vì điều này có nghĩa là ứng dụng đã giành được chạy thường trong một số kịch bản nhất định. Trong trường hợp những cảnh báo này gây ra rất nhiều lỗi, thì sẽ thực tế hơn khi ẩn các lỗi và chỉ hiển thị thông điệp cảnh báo là gì.

error_reporting(E_WARNING);

Đối với một nhà phát triển, hiển thị các cảnh báo và ẩn lỗi cũng đơn giản như thêm một dòng mã. Để hiển thị các cảnh báo và thông báo, tham số cho chức năng báo cáo lỗi sẽ là E_Warning | E_notice ”. Hàm error_Reporting có thể chấp nhận các tham số e_error, e_warning, e_parse và e_notice là toán tử bitwise. Để báo cáo tất cả các lỗi ngoại trừ các thông báo, thì tham số là e_all & ~ e_notice, trong đó e_all là viết tắt của tất cả các tham số có thể của hàm error_Reporting.

Chuyên sâu với hàm error_Reporting ()

Hàm báo cáo lỗi là chức năng PHP tích hợp cho phép các nhà phát triển kiểm soát và có bao nhiêu lỗi sẽ được hiển thị trong ứng dụng. Hãy nhớ rằng, cấu hình PHP INI có một lệnh error_Reporting sẽ được đặt bởi chức năng này trong thời gian chạy.

error_reporting(0);

Để xóa tất cả các lỗi, cảnh báo, thông báo phân tích cú pháp và thông báo, tham số nên được truyền đến hàm ERROR_REPORTING bằng không. Sẽ không thực tế khi có dòng mã này trong mỗi tệp PHP. Sẽ tốt hơn nếu tắt tin nhắn báo cáo trong tệp PHP INI hoặc trong .htaccess.

error_reporting(E_NOTICE);

PHP cho phép các biến được sử dụng ngay cả khi không được khai báo. Đây không phải là một thông lệ tiêu chuẩn vì các biến không được khai báo sẽ gây ra các vấn đề cho ứng dụng một khi nó được sử dụng trong các vòng lặp và điều kiện. Đôi khi, điều này cũng xảy ra bởi vì biến được khai báo có cách đánh vần khác với biến được sử dụng cho các điều kiện hoặc vòng lặp. Khi e_notice được truyền trong hàm error_Reporting, thì các biến không được khai báo này sẽ được hiển thị trong ứng dụng web.

error_reporting(E_ALL & ~E_NOTICE);

Hàm báo cáo lỗi cho phép bạn lọc những lỗi nào có thể được hiển thị. Nhân vật của người khác có nghĩa là người khác không phải là người khác, vì vậy tham số ~ e_notice có nghĩa là không hiển thị thông báo. Chú ý những người khác và người khác và | ký tự ở giữa các tham số có thể. Nhân vật của người Viking và là dành cho người Hồi giáo cho tất cả các thành viên, trong khi đó, | Nhân vật đại diện cho một trong hai miễn là nó là sự thật. Hai ký tự này có cùng ý nghĩa trong điều kiện PHP hoặc và.

error_reporting(E_ALL);
error_reporting(-1);
ini_set('error_reporting', E_ALL);

Ba dòng mã này làm chính xác cùng một điều, nó sẽ hiển thị tất cả các lỗi PHP. Error_Reporting (e_all) được sử dụng rộng rãi nhất trong số các nhà phát triển để hiển thị các thông báo lỗi vì nó dễ đọc và dễ hiểu hơn.

Nhật ký lỗi PHP vào tệp bằng hàm orror_log ()

Trong quá trình sản xuất, các thông báo lỗi không được hiển thị cho người dùng cuối, nhưng thông tin này vẫn phải được ghi lại cho mục đích truy tìm. Cách tốt nhất để ghi lại các thông báo lỗi này trên ứng dụng web sản xuất là lưu trữ nó trong các tệp nhật ký.

Một cách dễ dàng để sử dụng các tệp nhật ký là sử dụng chức năng ERROR_LOG, chấp nhận bốn tham số. Tham số duy nhất được yêu cầu là tham số đầu tiên, chứa các chi tiết về lỗi hoặc những gì cần ghi lại. Loại, đích và tiêu đề là tất cả các tham số tùy chọn cho chức năng này.

error_log("There is something wrong!", 0);

Tham số loại, nếu không được xác định, sẽ là 0 theo mặc định, điều đó có nghĩa là thông tin nhật ký này sẽ được thêm vào bất kỳ tệp nhật ký nào được xác định trong máy chủ web.

display_errors = on
0

Tham số loại 1 sẽ gửi email một nhật ký lỗi được chỉ định trong tham số thứ ba. Để làm cho tính năng này hoạt động, PHP INI phải có cấu hình SMTP thích hợp để có thể gửi email. Các chỉ thị SMTP INI này bao gồm máy chủ, loại mã hóa, tên người dùng, mật khẩu và cổng. Loại báo cáo lỗi này được khuyến khích để ghi nhật ký hoặc thông báo các lỗi cần được sửa ngay khi tìm thấy.

display_errors = on
1

Để đăng nhập các thông báo vào một tệp riêng biệt được xác định bởi cấu hình của máy chủ web, thì phải sử dụng loại 3. Tham số thứ ba sẽ đóng vai trò là vị trí của tệp nhật ký và phải được máy chủ web có thể ghi. Vị trí của tệp nhật ký có thể là một đường dẫn tương đối đến nơi mã này được gọi hoặc đường dẫn tuyệt đối.

Đăng nhập lỗi PHP thông qua cấu hình máy chủ web

Để tránh thay đổi các tham số trong .htaccess hoặc thêm một số dòng trong mã PHP để hiển thị lỗi, thì cách tốt nhất để đăng nhập lỗi là xác định nó trong tệp cấu hình máy chủ web.

display_errors = on
2

Đối với Apache, các tệp này phải được thêm vào máy chủ ảo của trang web hoặc ứng dụng cụ thể, thường được đặt bên trong thư mục có sẵn các trang web cho tệp Ubuntu hoặc httpd-vhosts trong Windows.

display_errors = on
3

Đối với Nginx, tương tự như Apache, chỉ thị chỉ được gọi là ERROR_LOG. Đối với cả máy chủ web Apache và Nginx, các tệp nhật ký phải được ghi bởi máy chủ web. May mắn thay, khi cài đặt, các thư mục cho các tệp nhật ký của hai máy chủ web này đã có thể ghi được.

Tự động thu thập lỗi PHP với APM hồi cứu

Retrace là một công cụ APM (Quản lý hiệu suất ứng dụng) được cung cấp bởi Stackify. Nhưng công cụ vượt ra ngoài việc giám sát hiệu suất của ứng dụng của bạn. Nó cho phép bạn thực hiện tập trung ghi nhật ký, thực hiện định hình mã và đứng đầu các số liệu ứng dụng và máy chủ. is an APM (Application Performance Management) tool offered by Stackify. But the tool goes beyond monitoring the performance of your application. It allows you to do centralize logging, perform code profiling, and stay on top of server and application metrics.

Một trong những tính năng tuyệt vời của Retrace là khả năng tự động thu thập tất cả các lỗi chưa được xử lý trong ứng dụng PHP của bạn. Tiện ích mở rộng PHP của chúng tôi sẽ nắm bắt ngoại lệ và tự động chuyển tiếp chúng để lấy lại.

Với việc truy xuất, tất cả các lỗi được tự động ghi lại và định dạng để có thể xem dễ dàng. Lấy lại sẽ không chỉ hiển thị những lỗi đã xảy ra mà còn phân tích ở đâu và nguyên nhân gây ra nó. Thời gian và số lần xuất hiện cũng được hiển thị trong các nhật ký để tập trung vào vấn đề nào sẽ dễ dàng hơn rất nhiều để ưu tiên.

Để tìm hiểu thêm về TrareRace, vui lòng kiểm tra trang tính năng Retrace về theo dõi lỗi. Ngoài ra, hãy thử Stackify Code Profiler miễn phí, tiền tố, để viết mã tốt hơn trên máy trạm của bạn. Tiền tố hoạt động với .NET, Java, PHP, Node.js, Ruby và Python.

Hướng dẫn how do i handle php errors? - làm cách nào để xử lý lỗi php?

  • Thông tin về các Tác giả
  • Bài viết mới nhất

Làm cách nào để ngăn PHP hiển thị lỗi?

Sử dụng trình soạn thảo văn bản để sửa đổi tệp .htaccess như sau:..
Để ngăn PHP hiển thị thông báo lỗi, hãy thêm dòng sau: Php_flag display_errors tắt ..
Để cho phép PHP hiển thị thông báo lỗi, hãy thêm dòng sau: Php_flag display_errors BẬT ..

Điều gì gây ra lỗi PHP?

Lỗi PHP xảy ra khi có điều gì đó không ổn trong mã PHP.Lỗi có thể đơn giản như một dấu chấm phẩy bị thiếu hoặc phức tạp như gọi một biến không chính xác.Để giải quyết hiệu quả vấn đề PHP trong tập lệnh, bạn phải hiểu loại vấn đề nào đang xảy ra.Mẹo: Bạn có thể kiểm tra tập lệnh PHP trực tuyến.something is wrong in the PHP code. The error can be as simple as a missing semicolon, or as complex as calling an incorrect variable. To efficiently resolve a PHP issue in a script, you must understand what kind of problem is occurring. Tip: You can test your PHP scripts online.