informaticaPC

Tutorial de PHP

Control de excepciones, crear funciones, encabezados, redirigir página web...

Control de Excepciones en PHP

El uso de Excepciones es muy útil a la hora de controlar y rastrear errores, si bien muchas funciones de PHP devuelven únicamente false en caso de error.

A continuación te mostramos un ejemplo de uso de excepciones:

<?php
    function dividir($n1, $n2)
    {
        $resultado = null;

        try
        {
            if( $n2 == 0 )
                throw new Exception("División por cero", 74787);
            else
                $resultado = $n1 / $n2;
        }
        catch( Exception $e )
        {
            echo "<p>Entramos en 'Exception'</p>";
            throw $e;
        }
    }

    //--------------------

    try
    {
        dividir(4, 0);
    }
    catch( Exception $e )
    {
        echo "Ha ocurrido una una Excepción:<br>";
        echo "<p>==============================</p>";

        echo "Código: ".$e->getCode()."<br/>";
        echo "Mensaje: ".$e->getMessage()."<br/>";
        echo "Archivo: ".$e->getFile()."<br/>";
        echo "Línea: ".$e->getLine()."<br/>";
    }
?>

Descargar ejemplo

Excepciones en PHP

Más información

Vea también: [ Excepciones en PHP ] - [ Exception ]

Información

Al contrario que otros lenguajes de programación, a día de hoy la actual versión de PHP 5.3.0 no reconoce la cláusula finally en un bloque try ... catch().

Crear una función en PHP

El uso de funciones evita que se repita el código fuente del programa, permitiendo una mejor estructuración del programa y facilitando la depuración de errores y el posterior mantenimiento del mismo.

Para crear una función en PHP, después de la palabra function escribiremos el nombre de la misma junto con sus parámetros y el resto del código entre llaves, mientras que con return devolvemos el resultado, tal y como puedes ver en el siguiente ejemplo:

<?php
    function multiplicar( $n1, $n2)
    {
        return $n1 * $n2;
    }

    // Llamamos a la función:
    $resultado = multiplicar( 22, 3 );

    // Mostramos el resultado:
    echo "El resultado es: ".$resultado;
?>

Descargar ejemplo

Si necesitamos comprobar si existe una función en PHP utilizaremos function_exists():

<?php
    function multiplicar( $n1, $n2) {
        return $n1 * $n2;
    }

    if( function_exists("multiplicar") == true )
        echo "La función 'multiplicar()' existe";
    else
        echo "La función 'multiplicar()' NO existe";
?>

Descargar ejemplo

Más información

Vea también: [ Funciones en PHP ] - [ function_exists() ]

Información

Poner una arroba '@' antes del nombre de una función ocasiona que no se muestren por pantalla mensajes de aviso o error que se puedan producir.

Incluir código de otro archivo

Mediante las funciones include() e include_once() podemos incluir y evaluar otro archivo, siendo la diferencia entre ellas que include_once() no volverá a incluirlo si ya lo había sido. En caso de error devuelven un E_WARNING.

También podemos usar require() y require_once() que son similares a las anteriores, con la única diferencia de que detienen el script en caso de error.

03_incluir_archivo_1.php:

<?php
    require_once("03_incluir_archivo_2.php");
    echo "<p>Estamos en el primer archivo</p>";
?>

03_incluir_archivo_2.php:

<?php
    echo "<p>Estamos en el segundo archivo</p>";
?>

Descargar ejemplo

incluir archivos

Más información

Vea también: [ include() ] - [ include_once() ] - [ require() ] - [ require_once() ]

Redirigir a otra página

Para redirigir a otra URL o página web usaremos la función header(), la cual debe ser llamada antes de enviar cualquier otra información al navegador web.

A continuación te mostramos cómo redirigir a otra URL:

<?php
    header("Location: https://informaticapc.com/");
?>

Descargar ejemplo

En el siguiente ejemplo puedes ver cómo cargar otro archivo de página web:

<?php
    header("Location: pagina2.php");
?>

Descargar ejemplo

Más información

Vea también: [ header() ]

Enviar cabeceras

Aparte de para redirigir a otra página también usaremos header() para enviar encabezados al navegador web. Para obtener más información sobre encabezados HTTP consulta el enlace facilitado al final de este apartado.

En el siguiente ejemplo enviamos encabezados que informan de que será enviado un archivo PDF:

<?php

    $archivo = "test.pdf";

    if( file_exists($archivo) )
    {
        // Cabeceras que indican que enviaremos el PDF y su tamaño:
        header("Content-type: application/pdf");
        header("Content-Disposition: attachment; filename=".$archivo);
        header("Content-length: ".filesize($archivo));

        // Leer y enviar el archivo al navegador web:
        readfile($archivo);
    }

?>

Descargar ejemplo

Usaremos las función headers_list() para comprobar si se han definido cabeceras y headers_sent() para verificar que efectivamente han sido enviadas (es posible que no lo sean tras procesarse header() sino que hayan quedado temporalmente en el buffer de salida).

<?php
    // Enviamos una cabecera:
    header("Status: 404 Not Found");

    // Forzamos que se vacíe el buffer, enviando la cabecera:
    //flush();

    // Mostramos los datos de la cabecera:
    print_r( headers_list() );

    if( headers_sent() == true )	// Comprobamos si se han enviado las cabeceras
        echo "<p>Se han enviado cabeceras</p>";
    else
        echo "<p>No se han enviado cabeceras</p>";
?>

Descargar ejemplo

Cabecera en PHP

Detener un script y controlar la salida

Para forzar la salida de un script utilizaremos la función de PHP exit(), y mediante register_shutdown_function() es posible indicar una función que será procesada al finalizar dicho script.

<?php
    function salida() {
        echo "<p>Ha terminado el script</p>";
    }

    register_shutdown_function( "salida" );

    exit("<p>Forzamos la salida del script</p>");

    echo "<p>Esto es una cadena de texto</p>";
?>

Descargar ejemplo

Terminar un script

Más información

Vea también: [ exit() ] - [ Autentificación HTTP ] - [ header() ] - [ headers_list() ] - [ headers_sent() ]

Más información

Vea también: [ register_shutdown_function() ]

Primera página Anterior Siguiente Última página
Usamos cookies para ofrecerte una experiencia mejorada, el continuar navegando supone que aceptas su uso