Foros del Web » Programando para Internet » PHP »

Que cambiar para evitar el "die"

Estas en el tema de Que cambiar para evitar el "die" en el foro de PHP en Foros del Web. Dentro de mi parser xml en php tengo el siguiente código: Código: if (!($fp = fopen($file, "r"))) { die("could not open XML input"); } while ...
  #1 (permalink)  
Antiguo 19/08/2004, 04:50
 
Fecha de Ingreso: febrero-2003
Mensajes: 67
Antigüedad: 21 años, 1 mes
Puntos: 0
Que cambiar para evitar el "die"

Dentro de mi parser xml en php tengo el siguiente código:

Código:
if (!($fp = fopen($file, "r"))) {
   die("could not open XML input");
}
while ($data = fread($fp, 4096)) {
   if (!xml_parse($xml_parser, $data, feof($fp))) {
      die(sprintf("XML error: %s at line %d",
      xml_error_string(xml_get_error_code($xml_parser)),
      xml_get_current_line_number($xml_parser)));
   }
}
Que tengo que cambiar para evitar el "die" y el texto de error si no se abre el archivo XML y sustituirlo por un

include ("otro_archivo.php")
  #2 (permalink)  
Antiguo 19/08/2004, 07:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si te fijas que hace el die() (www.php.net/die) veras que lo que hace es "Terminar" el script (su ejecución) y con opción a dar un mensaje de salida ...

Con exit; (o incluso con die() sólo ..) también terminas la ejecución de un script en el punto que lo uses .. así que se trataría de llamar a tu "include" (o incluso redireccionar a otra página, hacer un log de errores por el camino .. etc, o lo que guestes) antes de aplicar tu exit.

Hasta podrías usar el "else" de ese if () para llevar el flujo de tu script al final del mismo .. aunque realmente resulta más "cómodo" hacer un exit ("romper") en el punto del código que gustes. (todo depende de donde lo hagas y si has o estas enviando algo de salida al cliente ..sea HTML, XML ..etc ..)

Código PHP:
if (!($fp fopen($file"r"))) {
   include (
"blablabla.php");
   exit;

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:38.