Publi

Utilizar la salida de error en PHP

Casi siempre, PHP es un lenguaje utilizado para la web y no para programas de consola o escritorio; aunque tenemos la posibilidad de utilizarlo para esos propósitos.

Y es que si estamos familiarizados con PHP y tenemos muchas bibliotecas de clases/funciones en ese lenguaje, a menudo querremos utilizarlo para otros propósitos.

Como sabemos, cuando queremos sacar texto por pantalla desde un programa tenemos la salida estándar y la salida de error (stdout, stderr); desde PHP podemos utilizar de forma fácil la salida estándar con las funciones habituales (echo, printf, print, print_r, etc). Pero para aprovechar la salida de error tendremos que recurrir a un recurso especial php://stderr, éste se comporta como un fichero donde la información que escribamos en él se dirigirá a la salida de error.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

function echoerr($txt)
{
  file_put_contents('php://stderr', $txt);
}

function echoerr2($txt)
{
  $e=fopen('php://stderr', 'w');
  fwrite($e, $txt);
  fclose($e);
}

echo "Hola mundo!\n";
echoerr("Hola error!\n");
echoerr2("Hola error, parte II\n");
?>

Como vemos, podemos utilizarlo con cualquier función que escriba en un archivo, como por ejemplo file_put_contents() o abriéndolo con fopen() y escribiendo en el archivo.

En la salida podemos ver que escribimos en stderr:

gaspy@local ~/proyectos/poesiabinaria $ php stdout.php
Hola mundo!
Hola error!
Hola error, parte II
# ——- Aquí vemos la salida completa ————-
gaspy@local ~/proyectos/poesiabinaria $ php stdout.php > hola
Hola error!
Hola error, parte II
# ——- Sólo vemos el error, la salida estándar está redirigida a un archivo.
gaspy@local ~/proyectos/poesiabinaria $ cat hola
Hola mundo!
# ——- Vemos el archivo con la salida estándar solamente.

También podría interesarte...

There are 4 comments left Ir a comentario

  1. Pingback: Bitacoras.com /

  2. kenkeiras /
    Usando Mozilla Firefox Mozilla Firefox 3.6.13 en Linux Linux

    0.o poder hacer eso es muy útil para usarlo en scripting, gracias!

  3. admin / Post Author
    Usando Mozilla Firefox Mozilla Firefox 3.6 en Linux Linux

    @kenkeiras
    Con lo scripteros que somos estaba tardando ehh !

  4. Pingback: BlogESfera.com /

Leave a Reply