php - 如何使用 Javascript 在浏览器中显示所有 PHP 运行时错误

标签 php javascript error-handling runtime-error xdebug

通常在开发周期中进行 PHP 编程和测试时,每次运行只会看到一个错误。

您可以使用 php.exe 或在线工具查看语法错误 pilliappphpcodechecker .但是,您无法检测到运行时错误,例如 undefined variable 。

您可以使用 XDebug 进行跟踪,但它很无聊。

如何在浏览器中一次显示所有 PHP 运行时错误?

所以用户可以同时处理所有愚蠢的问题,以不引人注目的方式。 (不是逻辑错误)。

最佳答案

论坛和问答网站确实是很好的学习资源!

昨天我做了一个questionstackoverflow .com 和讨论启发我创建了一种新方法来使用 PHPJavascript 解决 PHP 中的绝大多数运行时错误。

假设我有一个包含许多潜在运行时错误的 PHP 源代码。所以我将我的代码放在 HTML 标记内的以下几行中,例如在初始位置,我需要使用 PHP 代码。

 <script type="text/javascript">
 var nerrors = 0;               // PHP Errors count in Javascript

 function PHPErrors() {         // Javascript  Function that wraps the PHP Code
  <?php
               // MyErrorHandler is my function that my custom error handler
               // uses with error parameters in that given order.

     function myErrorHandler($errno, $errstr, $errfile, $errline) {
     echo "document.getElementById('PHPError').innerHTML += " . 
      "\"$errno: $errstr ($errline)<br>\";\r\n";        
     echo "nerrors = nerrors + 1;\r\n";
     return true;
 }
      // That's the line the set my custom new error-handling
      // disabling the default error handling
 $old_error_handler = set_error_handler("myErrorHandler");

      // Below random PHP code full of errors 
 $b = $a;                 // PHP Error 1
 $c = $a +1;              // PHP Error 2
 $d = $a + 1;             // PHP Error 3  
 $e = $_SESSION['glove'];  // PHP Error 4
?>
      // No PHP runtime error deserves a nice messagen
if (nerrors===0) {
   document.getElementById('PHPError').innerHTML =
                    "Well done! PHP without errors."; } 
}                        // End Javascript Function

在此代码之后,您可以自由添加其他 Javascript 和 PHP。 最后,我将下面两行放在 HTML 正文中的某个位置。

    <p id="PHPError"> </p>
    <button onclick="PHPErrors()">Show me all PHP runtime errors</button> 

所以当我浏览这个PHP页面时,我可以看到

Button to press for seeing the errors

最后我按下它,我可以看到所有 PHP 运行时错误消息

8: Undefined variable: a (26)
8: Undefined variable: d (27)
8: Undefined variable: c (28)
8: Undefined index: glove (29)

或愉快的

Well done! PHP without errors.

显然不需要任何按钮,可以将此代码包含在 javascript onload 函数中。

关于php - 如何使用 Javascript 在浏览器中显示所有 PHP 运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14358518/

相关文章:

php - 导入巨大的 csv 并加载数据本地文件,其中一些字段用“括起来”

php - Opencart VQMod 添加额外数据到订单确认邮件

php - PHP中减去预定义的时间

javascript - 根据单独的总和正确创建工具提示

react-native - 如果您的字体未在 React Native 中加载,那么执行错误处理的最佳方法是什么?

c++ - 错误处理。将系统错误代码映射到通用错误代码

php - 未正确写入 MySQL 数据库

javascript - 检查数据库后如何在 wordpress functions.php 文件中添加 javascript

javascript - 在 console.log 中出现 "Undefined"错误

c# - 如何处理从SQL抛出的错误消息到controller.cs