The track_errors parameter is PHP_INI_ALL, so you can use code like this:
<?php
ini_set('track_errors', 1);
$result = @do_risky_thing();
if (! $result) {
echo '<p>Error' . htmlspecialchars($php_errormsg) . '</p>';
}
ini_set('track_errors', 0);
?>
$php_errormsg
(PHP 4, PHP 5)
$php_errormsg — The previous error message
Description
$php_errormsg is a variable containing the text of the last error message generated by PHP. This variable will only be available within the scope in which the error occurred, and only if the track_errors configuration option is turned on (it defaults to off).
Note: This variable is only available when track_errors is enabled in php.ini.
Warning
If a user defined error handler ( set_error_handler())
is set $php_errormsg is only set if the error handler
returns FALSE
Examples
Example #1 $php_errormsg example
<?php
@strpos();
echo $php_errormsg;
?>
The above example will output something similar to:
Wrong parameter count for strpos()
josh at karmabunny dot com dot au ¶
1 year ago
quickshiftin at gmail dot com ¶
3 months ago
While $php_errormsg is a global, it is not a superglobal.
You'll have to qualify it with a global keyword inside a function.
<?php
function checkErrormsg()
{
global $php_errormsg;
@strpos();
return $php_errormsg;
}
?>
