اكتشاف أخطاء PHP الفادحة باستخدام وظيفة التسجيل_shutdown_
في PHP، يعد set_error_handler() مفيدًا لمعالجة معظم الأخطاء. ومع ذلك، لا يمكنه التقاط الأخطاء الفادحة مثل تلك الناتجة عن استدعاء وظائف غير موجودة. لمعالجة هذا القيد، يمكننا الاستفادة من وظيفةregister_shutdown_function.
استخدام Register_shutdown_function
register_shutdown_function() هي وظيفة يمكن استدعاؤها عند إيقاف تشغيل PHP. يستغرق وظيفة محددة من قبل المستخدم كمعلمة. يمكن لهذه الوظيفة بعد ذلك التقاط أي أخطاء غير معالجة حدثت أثناء التنفيذ.
register_shutdown_function("fatal_handler"); function fatal_handler() { $error = error_get_last(); if ($error !== NULL) { // Extract error information $errno = $error["type"]; $errfile = $error["file"]; $errline = $error["line"]; $errstr = $error["message"]; // Send error details via email using error_mail error_mail(format_error($errno, $errstr, $errfile, $errline)); } }
وظائف إضافية
في الكود أعلاه، افترضنا وجود وظيفتين إضافيتين: error_mail وformat_error. إليك كيفية تعريفها:function format_error($errno, $errstr, $errfile, $errline) { $trace = print_r(debug_backtrace(false), true); محتوى $ = "..."; // قم بتنسيق رسالة الخطأ حسب الحاجة إرجاع محتوى $؛function format_error($errno, $errstr, $errfile, $errline) { $trace = print_r(debug_backtrace(false), true); $content = "..."; // Format the error message as needed return $content; }وظيفة error_mail($content) { // استخدم Swift Mailer أو مكتبة إرسال البريد الأخرى لإرسال رسالة الخطأ عبر البريد الإلكتروني
function format_error($errno, $errstr, $errfile, $errline) { $trace = print_r(debug_backtrace(false), true); $content = "..."; // Format the error message as needed return $content; }
ملاحظات إضافية
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3