MANUAL DE PHP

(y algo mas)windsurf pozo izquierdo
Google
search for in the  
ELMARRAJO.COM mysql bulma desarrollo web linux fedora html ayuda

windsurf mercedes camper

error_reporting

(PHP 3, PHP 4, PHP 5)

error_reporting -- Define cuáles errores de PHP son reportados

Descripción

int error_reporting ( [int nivel] )

La función error_reporting() establece la directiva error_reporting en tiempo de ejecución. PHP tiene varios niveles de errores, el uso de esta función define ese nivel para la duración (tiempo de ejecución) de su script.

Lista de parámetros

nivel

El nuevo nivel de error_reporting. Recibe una máscara de bits, o constantes con nombre. El uso de constantes con nombre es bastante recomendable para asegurar la compatibilidad con versiones futuras. A medida que se agregan niveles de error, el rango de los enteros se incrementa, así que los niveles de error antiguos basados en enteros no siempre se comportarán como es de esperarse.

Las constantes de nivel de error disponibles se listan a continuación. Los significados reales de estos niveles de error son descritos en las constantes predefinidas.

Tabla 1. Constantes de nivel de error_reporting() y valores de bit

valorconstante
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
64 E_COMPILE_ERROR
128 E_COMPILE_WARNING
256 E_USER_ERROR
512 E_USER_WARNING
1024 E_USER_NOTICE
2047 E_ALL
2048 E_STRICT

Valores retornados

Devuelve el nivel error_reporting antiguo.

Ejemplos

Ejemplo 1. Ejemplos de error_reporting()

<?php

// Deshabilitar todo reporte de errores
error_reporting(0);

// Errores de ejecucion simples
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Reportar E_NOTICE puede ser bueno tambien (para reportar variables
// no inicializadas o capturar equivocaciones en nombres de variables ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Reportar todos los errores excepto E_NOTICE
// Este es el valor predeterminado en php.ini
error_reporting(E_ALL ^ E_NOTICE);

// Reportar todos los errores de PHP (el valor de bits 63 puede ser usado en PHP 3)
error_reporting(E_ALL);

// Lo mismo que error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

Notes

Aviso

Con PHP > 5.0.0 E_STRICT está disponible con el valor 2048. E_ALL NO incluye el nivel de error E_STRICT. La mayoría de errores E_STRICT son evaluados en tiempo de compilación, por lo que tales errores no son reportados en el archivo en donde error_reporting sea modificado para incluir errores E_STRICT.

Ver también

La directiva display_errors
ini_set()



add a note add a note User Contributed Notes
error_reporting
enalung at gmail dot com
26-Jul-2006 11:58
To the_bug_the_bug at hotmail dot com:

Using integer values like that is not smart. They are subject to change. The constants on the other end will not change regardless of any changes on the integer values.
Chris
09-May-2006 01:32
I found some simple mistakes in the functions I posted yesterday, so here are the corrected versions.
And a good advice: never code in the middle of the night ;)

<?php
function error2string($value)
{
  
$level_names = array(
      
E_ERROR => 'E_ERROR', E_WARNING => 'E_WARNING',
      
E_PARSE => 'E_PARSE', E_NOTICE => 'E_NOTICE',
      
E_CORE_ERROR => 'E_CORE_ERROR', E_CORE_WARNING => 'E_CORE_WARNING',
      
E_COMPILE_ERROR => 'E_COMPILE_ERROR', E_COMPILE_WARNING => 'E_COMPILE_WARNING',
      
E_USER_ERROR => 'E_USER_ERROR', E_USER_WARNING => 'E_USER_WARNING',
      
E_USER_NOTICE => 'E_USER_NOTICE' );
   if(
defined('E_STRICT')) $level_names[E_STRICT]='E_STRICT';
  
$levels=array();
   if((
$value&E_ALL)==E_ALL)
   {
      
$levels[]='E_ALL';
      
$value&=~E_ALL;
   }
   foreach(
$level_names as $level=>$name)
       if((
$value&$level)==$level) $levels[]=$name;
   return
implode(' | ',$levels);
}
?>

<?php
function string2error($string)
{
  
$level_names = array( 'E_ERROR', 'E_WARNING', 'E_PARSE', 'E_NOTICE',
      
'E_CORE_ERROR', 'E_CORE_WARNING', 'E_COMPILE_ERROR', 'E_COMPILE_WARNING',
      
'E_USER_ERROR', 'E_USER_WARNING', 'E_USER_NOTICE', 'E_ALL' );
   if(
defined('E_STRICT')) $level_names[]='E_STRICT';
  
$value=0;
  
$levels=explode('|',$string);
   foreach(
$levels as $level)
   {
      
$level=trim($level);
       if(
defined($level)) $value|=(int)constant($level);
   }
   return
$value;
}
?>
the_bug_the_bug at hotmail dot com
24-Apr-2006 06:20
In response to simon at firepages dot com dot au below:

I wrote a shorter more efficient function which will return a string containing the names of the error levels set in the .ini file:

<?php
function error_level_tostring($intval, $separator)
{
  
$errorlevels = array(
      
2047 => 'E_ALL',
      
1024 => 'E_USER_NOTICE',
      
512 => 'E_USER_WARNING',
      
256 => 'E_USER_ERROR',
      
128 => 'E_COMPILE_WARNING',
      
64 => 'E_COMPILE_ERROR',
      
32 => 'E_CORE_WARNING',
      
16 => 'E_CORE_ERROR',
      
8 => 'E_NOTICE',
      
4 => 'E_PARSE',
      
2 => 'E_WARNING',
      
1 => 'E_ERROR');
  
$result = '';
   foreach(
$errorlevels as $number => $name)
   {
       if ((
$intval & $number) == $number) {
          
$result .= ($result != '' ? $separator : '').$name; }
   }
   return
$result;
}
?>

P.S. With a little modification this function can be made to show the string values of any enumeration.
dave at davidhbrown dot us
06-Apr-2006 08:51
The example of E_ALL ^ E_NOTICE is a 'bit' confusing for those of us not wholly conversant with bitwise operators.

If you wish to remove notices from the current level, whatever that unknown level might be, use & ~ instead:

<?php
//....
$errorlevel=error_reporting();
error_reporting($errorlevel & ~E_NOTICE);
//...code that generates notices
error_reporting($errorlevel);
//...
?>

^ is the xor (bit flipping) operator and would actually turn notices *on* if they were previously off (in the error level on its left). It works in the example because E_ALL is guaranteed to have the bit for E_NOTICE set, so when ^ flips that bit, it is in fact turned off. & ~ (and not) will always turn off the bits specified by the right-hand parameter, whether or not they were on or off.
DarkGool
19-Aug-2005 10:30
In phpinfo() error reporting level display like a bit (such as 4095)

Maybe it is a simply method to understand what a level set on your host
if you are not have access to php.ini file

<?
$bit
= ini_get('error_reporting');
while (
$bit > 0) {
   for(
$i = 0, $n = 0; $i <= $bit; $i = 1 * pow(2, $n), $n++) {
      
$end = $i;
   }
  
$res[] = $end;
  
$bit = $bit - $end;
}
?>

In $res you will have all constants of error reporting
$res[]=int(16) // E_CORE_ERROR
$res[]=int(8)    // E_NOTICE
...
fredrik at demomusic dot nu
22-Jul-2005 04:24
Remember that the error_reporting value is an integer, not a string ie "E_ALL & ~E_NOTICE".

This is very useful to remember when setting error_reporting levels in httpd.conf:

Use the table above or:
<?
ini_set
("error_reporting", E_YOUR_ERROR_LEVEL);
echo
ini_get("error_reporting");
?>

To get the appropriate integer for your error-level. Then use:

php_admin_value error_reporting YOUR_INT

in httpd.conf

I want to share this rather straightforward tip as it is rather annoying for new php users trying to understand why things are not working when the error-level is set to (int) "E_ALL" = 0...

Maybe the PHP-developers should make ie error_reporting("E_ALL"); output a E_NOTICE informative message about the mistake?
alex at modem-help dot com
23-Jun-2005 05:22
Centos4 (Apache/2.0.52, php-4.3.9)

Maintaining development + production sites side-by-side is  possible. Obviously, the production site wants all error-reporting display switched off, whilst the development site is the total reverse. Unfortunately, the php.ini file is global.

Using `ini_set("display_errors","1");' is not possible (ref: 12-Feb-2005 12:28 below) as any fatal errors in the script mean that it (and included scripts) never get acted upon (see php.net/manual/en/http://indices.com.es/ref.errorfunc.html#ini.display-errors).

Unfortunately the suggestion from Fernando Piancastelli (ref: 13-Dec-2004 09:23) did not work for me either. The following *did* work, and allows parse-errors to be displayed on the development site:

php.ini:
error_reporting  =  ~E_ALL
display_errors = Off
display_startup_errors = Off

within an Apache Virtual Host in httpd.conf:
php_flag  display_errors        on
php_flag  display_startup_errors on
php_value error_reporting        2047

The above *should* be surrounded with `<IfModule mod_php4.c> ... </IfModule>' but that did not work either.
phpfanat at yandex dot ru
22-Feb-2005 09:03
If you get a weird mysql warnings like "Warning: mysql_query() [http://www.mysql.com/doc]: Your query requires a full tablescan...", don't look for error_reporting settings - it's set in php.ini.
You can turn it off with
ini_set("mysql.trace_mode","Off");
in your script

And, as of my opinion, it should be NOTICE, not WARNING level.
vdephily at bluemetrix dot com
22-Feb-2005 03:40
Note that E_NOTICE will warn you about uninitialized variables, but assigning a key/value pair counts as initialization, and will not trigger any error :
<?php
error_reporting
(E_ALL);

$foo = $bar; //notice : $bar uninitialized

$bar['foo'] = 'hello'; // no notice, although $bar itself has never been initialized (with "$bar = array()" for example)

$bar = array('foobar' => 'barfoo');
$foo = $bar['foobar'] // ok

$foo = $bar['nope'] // notice : no such index
?>
10-Feb-2005 09:55
Under jjuffermans' note, the editors posted the following:

"Instead of using @ to suppress errors if the file does not exist you should do a conditional include:

if (is_file("nosuchfile.php")) {
 include_once("nosuchfile.php");
}"

This is rather obvious, but has an even more obvious problem: is_file doesn't check on the include_path, which one assumes include_once is highly likely to be using.

While there are any number of kludgy workarounds which can be employed to overcome this problem, it's a structural problem in PHP and should be fixed. Preferably @ should only suppress a file not found error, but not any errors inside the included file if it is found, or failing that at the least is_file or file_exists should have the option to look on the include_path for the file.
Fernando Piancastelli
13-Dec-2004 01:23
The error_reporting() function won't be effective if your display_errors directive in php.ini is set to "Off", regardless of level reporting you set. I had to set

display_errors = On
error_reporting = ~E_ALL

to keep no error reporting as default, but be able to change error reporting level in my scripts.
I'm using PHP 4.3.9 and Apache 2.0.
ferozzahid [at] usa [dot] com
08-Sep-2004 04:31
To be enable to switch between error_reporting during development and release phases, one can define say 'php_error_reporting' in the main configuration file (ini like file: no PHP) for the application as:

# config.ini
# PHP error reporting. supported values are given below.
# 0 - Turn off all error reporting
# 1 - Running errors
# 2 - Running errors + notices
# 3 - All errors except notices and warnings
# 4 - All errors except notices
# 5 - All errors

php_error_reporting=4

# config.ini ends

Setting error_reporting in PHP files would be something like the code below, assuming the function getinivar() returns the variable value from the configuration file.

[code]
// setting PHP error reporting
switch(getinivar('php_error_reporting')) {
case 0: error_reporting(0); break;
case 1: error_reporting(E_ERROR | E_WARNING | E_PARSE); break;
case 2: error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); break;
case 3: error_reporting(E_ALL ^ (E_NOTICE | E_WARNING)); break;
case 4: error_reporting(E_ALL ^ E_NOTICE); break;
case 5: error_reporting(E_ALL); break;
default:
   error_reporting(E_ALL);
}
[/code]

Feroz Zahid.
jernberg at fairytale dot se
27-Feb-2003 03:27
tip: if you want your error_reporting()-setting to work with your own error handler you could simply check the error number against the current error bitmask.

function myErrorHandler( $errno, $errstr, $errfile, $errline )
{
  $replevel = error_reporting();
  if( ( $errno & $replevel ) != $errno )
  {
   // we shall remain quiet.
   return;
  }
  echo( "error....." );
}
jjuffermans at chello dot com
04-Jan-2003 06:47
[Editor's Note]
Instead of using @ to suppress errors if the file does not exist you should do a conditional include:

if (is_file("nosuchfile.php")) {
 include_once("nosuchfile.php");
}


Note that when you use the @ to suppress the error of an include file that couldn'd be found, like so:

  @include("nosuchfile.php");

It also suppresses all the parse errors generated in "nosuchfile.php" if it does exist.

It took us a long time before we discovered why we weren't  getting any parse errors... This is it.

Personally, I don't like this... Maybe it can be changed in a future php version? :)

Coditor
rbt at zort.ca
09-Feb-2002 08:25
It should be noted that in apache.conf files the defined values (constants) don't work.  For E_ALL logging, one would use:

php_admin_value error_reporting 2047
cgi at harrison dot org
11-Dec-2000 03:59
[Editor's Note: The error suppression operator (@)can be used to suppress errors for a single expression. To use the operator, place it in front of the expression that you wish to suppress error reporting for. Basic use is:

$fp = @ fopen ('non-existant.file', 'r');

 See the url below for details.]

Error Suppression Operator - Info
http://www.php.net/manual/language.operators.errorcontrol.php
j dot schriver at vindiou dot com
02-Oct-2000 11:37
error_reporting() has no effect if you have defined your own error handler with set_error_handler()

[Editor's Note: This is not quite accurate.

E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR and E_COMPILE_WARNING error levels will be handled as per the error_reporting settings.

All other levels of errors will be passed to the custom error handler defined by set_error_handler().

Zeev Suraski suggests that a simple way to use the defined levels of error reporting with your custom error handlers is to add the following line to the top of your error handling function:

if (!($type & error_reporting())) return;

 -zak@php.net]
03-Feb-2000 11:31
The E_NOTICE error reporting level reports the use of undefined variables as an error.

For example:
error_level (E_ALL); # Set error reporting to highest level
if ($foo)            # This will generate an error
  print "bar";      # because $foo is not defined

To avoid this behavior, use isset to test if the given
variable has been defined.

For example:
error_level (E_ALL);
if (isset ($foo))
   print "bar";
webmaster at l-i-e dot com
21-May-1999 02:13
[Editor's Note: E_ALL will contain the result of OR'ing all of the applicable error constants together. For PHP 3, this will be the first 4 E_xxx constants.  For PHP 4, this will be all constants. ]

There is also an E_ALL which is the first 4 E_xxx added up for you...

Citas célebres

la fuerza de voluntad es para la mente como un hombre ciego y fuerte que lleva sobre sus ojos a un inválido que puede ver.

Arthur Schopenhauers
Filósofo alemán
(1788-1860)
Citas en tu mail
©Contenidos Gratis

Ilusiones Opticas
ilusion_optica_066.jpg
Contenidos Web

Chiste de... Relaciones laborales
Músico

Un mediocre aficionado al violín solicita un puesto en una orquesta sinfónica. Después de escucharlo, el director le pregunta:

- ¿Por qué quiere usted tocar con músicos mucho mejores que usted?

- Porque peores no los hay.
Chistes en tu mail
©ContenidosGratis

Humor Gráfico
humor_grafico_035.jpg
Contenidos Web

Inicio | Acción | Estrategia | Palabras | Puzzles | Solitarios | Foro Trucos
Cake ManiaCake Mania
Jugadores: 6835
Categoría del juego: Acción
Objetivo del juego: Ayuda a Jill a recuperar la pastelería de su abuela llevando su propia pastelería; consigue clientes y gana dinero.
Rainbow WebRainbow Web
Jugadores: 2199
Categoría del juego: Puzzles
Objetivo del juego: Rompe un pegajoso hechizo y salva un reino de fantasía en Rainbow Web. Tendrás toneladas de diversión mientras juegas a este mágico desafío para la mente.
Mahjongg FortunaMahjongg Fortuna
Jugadores: 12462
Categoría del juego: Solitarios
Objetivo del juego: Velocidad y habilidad mental son las armas más importantes en esta versión de un antiguo juego asiático. Despeja el tablero lo antes posible haciendo clic en las fichas iguales y gánate la fama eterna de la puntuación más alta.
Chainz 2Chainz 2
Jugadores: 6955
Categoría del juego: Puzzles
Objetivo del juego: Entra en el mundo de las combinaciones con Chainz 2: Relinked, emocionante secuela del exitazo del año pasado, Chainz. Gira eslabones y crea combinaciones de 3 ó más.
DeliciousDelicious
Jugadores: 4405
Categoría del juego: Acción
Objetivo del juego: ¿Eres un as de la multitarea? ¿Quieres que tus clientes estén contentos? ¡Pues Delicious es tu juego! Sacia el apetito de los clientes y tenlos contentos; ¡no te arriesgues!
BookwormBookworm
Jugadores: 4568
Categoría del juego: Palabras
Objetivo del juego: Junta las letras para formar palabras. ¡Las palabras más largas valen más puntos!
ZumaZuma
Jugadores: 4976
Categoría del juego: Acción
Objetivo del juego: Controla el ídolo de la rana de piedra de los antiguos Zuma en este intrigante enigma de acción. ¡Dispara bolas para formar conjuntos de tres, pero si dejas que lleguen a la calavera dorada morirás!
Jewel of AtlantisJewel of Atlantis
Jugadores: 3798
Categoría del juego: Puzzles
Objetivo del juego: Descubre la ciudad hundida de la Atlántida y busca valiosos tesoros. Viaja más allá de las profundidades del mar y vive trepidantes aventuras en Jewel of Atlantis.
Jewel QuestJewel Quest
Jugadores: 3727
Categoría del juego: Puzzles
Objetivo del juego: Convierte la arena de la antigua selva en oro tan rápido como puedas juntando grupos de 3 elementos. ¡Los grupos más grandes valen más puntos!
Bejeweled 2Bejeweled 2
Jugadores: 3659
Categoría del juego: Puzzles
Objetivo del juego: Con cuatro modos de juego únicos y fascinantes, nuevas piezas de juego explosivas e imponentes fondos planetarios, Bejeweled 2 es mucho más adictivo que nunca.
Contenidos gratis en tu webSiguiente >>

Fotos divertidas
fotos_increibles_0305.jpg
Contenidos Web
microrobots avion deportes riesgo recetas cocina canaria juegos online gratis moto motociclismo horoscopos naranjas valencianas surf canarias montañismo ciudades turismo postales gratis library Horoscopos Diarios Windsurf Canarias
fregadero microondas placa electrica bañopreparar camper pantalla plananevera compresor electricacamper fiat ducato camper baño quimicomampara enrollable bañocamper aire climatizadofurgoneta surf windsurffurgoneta surf windsurftelevisor furgonetas camperfurgonetas camper cama

Sudoku del día
Nivel de dificultad: Fácil



Cómo jugar:
El juego consiste en colocar los números del 1 al nueve de tal forma que no se repita el mismo número en la columna, fila y caja (bloques 3x3 enmarcados).

©Contenidos Gratis | Sudoku en tu mail
Sucedió el...

30 de agosto de 1617

Fallece Santa Rosa de Lima, por la que se celebra el "Día de la Patrona de América".
Efemérides en tu mail
©Contenidos Gratis
windsurf canarias youtube porno canarias baleares valencia madrid fallera mayor campus party alcacer feria valencia fernando alonso loterias dinero inversiones violencia de genero makro empresas cartera soledad tolerancia metro valencia gobierno de españa violencia de genero UIMP navidad