Foros del Web » Programando para Internet » PHP »

reconocer una cadena de texto dentro de otra cadena de texto

Estas en el tema de reconocer una cadena de texto dentro de otra cadena de texto en el foro de PHP en Foros del Web. ola espero puedan ayudarme en esto, la cuestion es esta : mediante este codigo Código PHP: $inter =  $ssh -> exec ( "get system interface" );  ( ...
  #1 (permalink)  
Antiguo 17/03/2009, 12:40
 
Fecha de Ingreso: marzo-2009
Mensajes: 1
Antigüedad: 15 años, 1 mes
Puntos: 0
reconocer una cadena de texto dentro de otra cadena de texto

ola espero puedan ayudarme en esto, la cuestion es esta :

mediante este codigo

Código PHP:
$inter$ssh->exec("get system interface"); 
( comando de un fortinet 300 )

obtengo una cadena de texto que me (genera el fortinet) queda guardada en
mi variable
Código PHP:
$inter 
esta cadena de texto tiene cierta informacion q viene dentro de unos corchetes, lo que yo quiero es obtener esa informacion o pedazo de texto que viene dentro de los corchetes ( aclaro son varios corchetes) quisiera saber como hago eso

este es mi texto dentro de mi variable :

FG300A2904500530 $ == [ port1 ] name: port1 mode: static ip: 172.16.193.1 255.255.255.0 status: up netbios-forward: disable type: physical mtu-override: disable == [ port2 ] name: port2 mode: static ip: 172.16.190.1 255.255.255.0 status: up netbios-forward: disable type: physical mtu-override: disable == [ port3 ] name: port3 mode: static ip: 201.114.194.168 255.255.255.0 status: up netbios-forward: disable type: physical mtu-override: enable == [ port4 ] name: port4 mode: static ip: 192.168.1.100 255.255.255.0 status: up netbios-forward: disable type: physical mtu-override: enable == [ port5 ] name: port5 mode: static ip: 0.0.0.0 0.0.0.0 status: up netbios-forward: disable type: physical mtu-override: disable == [ port6 ] name: port6 mode: static ip: 0.0.0.0 0.0.0.0 status: up netbios-forward: disable type: physical mtu-override: disable == [ modem ] name: modem == [ ssl.root ] name: ssl.root ip: 0.0.0.0 0.0.0.0 status: up netbios-forward: disable type: tunnel --More-- == [ pruebainterface ] name: pruebainterface ip: 0.0.0.0 0.0.0.0 status: up netbios-forward: disable type: tunnel == [ VPN-INTER ] name: VPN-INTER ip: 0.0.0.0 0.0.0.0 status: up netbios-forward: disable type: tunnel FG300A2904500530 $


y lo que quiero es obtener port1, port2, port3, port4, port5, port6, mode, ssl.root, pruebainterface, VPN-INTER

y despues poder meterlos en un array , si alguien tiene idea porfas ayudemeeeee ,
  #2 (permalink)  
Antiguo 17/03/2009, 12:55
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: reconocer una cadena de texto dentro de otra cadena de texto

veo que antes de cada cosa que queres obtener hay un '=='

asi que podes hacerlo asi:

Código PHP:
<?php
$variable
="FG300A2904500530 $ == 
[ port1 ] name: port1 mode: static ip: 172.16.193.1 255.255.255.0 status: up netbios-forward: disable type: physical mtu-override: disable == 
[ port2 ] name: port2 mode: static ip: 172.16.190.1 255.255.255.0 status: up netbios-forward: disable type: physical mtu-override: disable == 
[ port3 ] name: port3 mode: static ip: 201.114.194.168 255.255.255.0 status: up netbios-forward: disable type: physical mtu-override: enable == 
[ port4 ] name: port4 mode: static ip: 192.168.1.100 255.255.255.0 status: up netbios-forward: disable type: physical mtu-override: enable == 
[ port5 ] name: port5 mode: static ip: 0.0.0.0 0.0.0.0 status: up netbios-forward: disable type: physical mtu-override: disable == 
[ port6 ] name: port6 mode: static ip: 0.0.0.0 0.0.0.0 status: up netbios-forward: disable type: physical mtu-override: disable == 
[ modem ] name: modem == 
[ ssl.root ] name: ssl.root ip: 0.0.0.0 0.0.0.0 status: up netbios-forward: disable type: tunnel --More-- == 
[ pruebainterface ] name: pruebainterface ip: 0.0.0.0 0.0.0.0 status: up netbios-forward: disable type: tunnel == 
[ VPN-INTER ] name: VPN-INTER ip: 0.0.0.0 0.0.0.0 status: up netbios-forward: disable type: tunnel FG300A2904500530 $"
;


// aca extrae los valores
$res=explode("==",$variable);

//echo $res[0]."<br />";
echo $res[1]."<br />";
echo 
$res[2]."<br />";
echo 
$res[3]."<br />";
echo 
$res[4]."<br />";
echo 
$res[5]."<br />";
echo 
$res[6]."<br />";
echo 
$res[7]."<br />";
echo 
$res[8]."<br />";
echo 
$res[9]."<br />";
echo 
$res[10]."<br />";


?>
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #3 (permalink)  
Antiguo 17/03/2009, 13:52
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: reconocer una cadena de texto dentro de otra cadena de texto

tambien lo podes adaptar a algo asi:


Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body><?php

function extraedato($dato,$cual){
$dat=explode(": ",$dato);

if(
$cual == 'name'){
$res=explode(" ",$dat[1]);
}
if(
$cual == 'mode'){
$res=explode(" ",$dat[2]);
}
if(
$cual == 'ip'){
$res=explode(" ",$dat[3]);
}
if(
$cual == 'status'){
$res=explode(" ",$dat[4]);
}
if(
$cual == 'netbios-forward'){
$res=explode(" ",$dat[5]);
}
if(
$cual == 'type'){
$res=explode(" ",$dat[6]);
}
if(
$cual == 'mtu-override'){
$res=explode(" ",$dat[7]);
}


return 
$res[0];
}

$variable="FG300A2904500530 $ == 
[ port1 ] name: port1 mode: static ip: 172.16.193.1 255.255.255.0 status: up netbios-forward: disable type: physical mtu-override: disable == 
[ port2 ] name: port2 mode: static ip: 172.16.190.1 255.255.255.0 status: up netbios-forward: disable type: physical mtu-override: disable == 
[ port3 ] name: port3 mode: static ip: 201.114.194.168 255.255.255.0 status: up netbios-forward: disable type: physical mtu-override: enable == 
[ port4 ] name: port4 mode: static ip: 192.168.1.100 255.255.255.0 status: up netbios-forward: disable type: physical mtu-override: enable == 
[ port5 ] name: port5 mode: static ip: 0.0.0.0 0.0.0.0 status: up netbios-forward: disable type: physical mtu-override: disable == 
[ port6 ] name: port6 mode: static ip: 0.0.0.0 0.0.0.0 status: up netbios-forward: disable type: physical mtu-override: disable == 
[ modem ] name: modem == 
[ ssl.root ] name: ssl.root ip: 0.0.0.0 0.0.0.0 status: up netbios-forward: disable type: tunnel --More-- == 
[ pruebainterface ] name: pruebainterface ip: 0.0.0.0 0.0.0.0 status: up netbios-forward: disable type: tunnel == 
[ VPN-INTER ] name: VPN-INTER ip: 0.0.0.0 0.0.0.0 status: up netbios-forward: disable type: tunnel FG300A2904500530 $"
;

$res=explode("==",$variable);

//echo $res[0]."<br />";
/*echo*/ 
$res[1]."<br />"// port1
/*echo*/ 
$res[2]."<br />"// port2
/*echo*/ 
$res[3]."<br />"// port3
/*echo*/ 
$res[4]."<br />"// port4
/*echo*/ 
$res[5]."<br />"// port5
/*echo*/ 
$res[6]."<br />"// port6
/*echo*/ 
$res[7]."<br />"// modem
/*echo*/ 
$res[8]."<br />"// ssl.root
/*echo*/ 
$res[9]."<br />"// pruebainterface
/*echo*/ 
$res[10]."<br />"// VPN-INTER

echo "<br />";

?>


//*/*/*/*/*/*/*/* EJEMPLOS:   /*/*/*/*/*/*/*/*//<br /><br />

// del puerto 1 extrae el status <br />
<?php echo extraedato($res[1],'status');?>
<br />
// del puerto 3 extrae el ip <br />
<?php echo extraedato($res[3],'ip');?>
<br />





</body>
</html>
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
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

SíEste tema le ha gustado a 1 personas




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