On Fri, 25 Mar 2005 14:01:22 -0300, Roberto Pereyra
wrote
> Hola
>
> ¿ Qué funcion puedo
usar para filtrar la salida de un comando, tal
> que muestre la linea que contiene
una cadena de caracteres que le
> paso por un formulario ?
>
> El código es:
>
> <?php
>
> $trafico_mensual =
> shell_exec('sudo
/usr/local/sbin/bw-ipfm.pl -m ');
> // envio correo de aviso de
consulta
>
> mail ($_REQUEST['email']
,
> "Consulta Trafico Mensual",
$trafico_mensual, "From: < Administrador
> vivecom.com.ar> admin_at_vivecom.
com.ar" );
>
> ?>
>
> La salida del comando que ejecuto
con shell_exec() es:
>
> Monthly Bandwith Usage for March
2005
> Hosts In Out Total
>
-----------------------------------------------
> 10.1.7.114 1.55G 340.81M
1.89G
> 10.1.4.178 736.12M 234.67M
970.80M
> 10.1.7.147 398.56M 499.97M
898.53M
> 10.1.4.202 582.39M 298.86M
881.25M
> 10.1.4.142 499.68M 359.84M
859.52M
> 10.1.4.106 348.35M 508.91M
857.27M
> 10.1.4.199 664.06M 53.99M
718.05M
>
> Yo solo quiero enviar por correo por
ej, solo la linea que contiene
> la ip=10.1.7.147
>
> El valor de la ip se la paso por un
formulario.
>
> Sería algo similar al comando
grep de unix sobre la salida de
> shell_exec().
>
> Gracias por cualquier ayuda que me
puedan dar.
>
> roberto
>
> --
> PHP Spanish Localization Talk
Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
Toma la salida del shell y pártela en cada fin de
línea, poniéndola en un
array con la función $arraydesalida=split() o
preg_split(). Luego busca en
cada elemento del array de salida que contenga el substring
equivalente al IP
que deseas (en tu ejemplo 10.1.7.147), y ya tienes tu
línea correcta.
Espero te sirva. Perdón por no codificarlo pero ando
algo apurado. Saludos.
--
Vladimir Hernández
Linux Baja California
Grupo de usuarios de GNU/Linux
http://linuxbaja.org
Linux registered user # 374079
counter.li.org
--
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Nearby vie mar 25 2005 -
18:25:03 CET