我正在使用核心PHP开发PHP在线IDE。当用户测试php代码时,如何显示像CodeIgniter这样的PHP错误?
答案 0 :(得分:0)
我不能说完全喜欢codeignitor,因为我从未使用它,但是:
方法1
您可以编辑php.ini
; String to output before an error message.
error_prepend_string = "<font color=ff0000><b>An Error Occured</b></font><i> Found an error as follows:</i><br><code>"
; String to output after an error message.
error_append_string = "</code>"
你可以编辑HTML并使用某些方法(比如js,但我不知道这是不是一个好主意)让它看起来更好
方法2
使用自定义处理程序:
function myErrorHandler($ errno,$ errstr,$ errfile,$ errline) {
$sev = "";
$errorType = array (
E_ERROR => 'ERROR',
E_WARNING => 'WARNING',
E_PARSE => 'PARSING ERROR',
E_NOTICE => 'NOTICE',
E_CORE_ERROR => 'CORE ERROR',
E_CORE_WARNING => 'CORE WARNING',
E_COMPILE_ERROR => 'COMPILE ERROR',
E_COMPILE_WARNING => 'COMPILE WARNING',
E_USER_ERROR => 'USER ERROR',
E_USER_WARNING => 'USER WARNING',
E_USER_NOTICE => 'USER NOTICE',
E_STRICT => 'STRICT NOTICE',
E_RECOVERABLE_ERROR => 'RECOVERABLE ERROR'
);
if(!isset($errorType($errno))
{
$sev = "Unknown";
}
else
{
$sev = $errorType[$errno];
}
echo "<div style= 'border-style: solid;border-color: #98bf21;'>";
echo "<b>A PHP Error was enccounter</b>";
echo "<li>Severity: $sev";
echo "<li>Message: $errstr";
echo "<li>Filename: $errfile";
echo "<li>Line NUmber: $errline";
echo "</div>";
/* Don't execute PHP internal error handler */
return true;
}
function shutdown() {
$isError = false;
if ($error = error_get_last()){
switch($error['type']){
case E_ERROR:
case E_CORE_ERROR:
case E_COMPILE_ERROR:
case E_USER_ERROR:
$isError = true;
break;
}
}
if ($isError){
myErrorHandler($error['type'],$error['message'],$error['file'],$error['file'])
}
}
并将其设为
set_error_handler("myErrorHandler");
register_shutdown_function('shutdown');
用这个检查:
un_defined_function(100);