Foros del Web » Programando para Internet » PHP »

Editar cadena extraida de BD

Estas en el tema de Editar cadena extraida de BD en el foro de PHP en Foros del Web. He decidido unirme al foro para solicitar ayuda, estoy trabajando en un Sistema de Análisis de Eventos de Seguridad, la cuestion es que en mi ...
  #1 (permalink)  
Antiguo 24/05/2009, 09:59
 
Fecha de Ingreso: mayo-2009
Mensajes: 37
Antigüedad: 14 años, 11 meses
Puntos: 0
Pregunta Editar cadena extraida de BD

He decidido unirme al foro para solicitar ayuda, estoy trabajando en un Sistema de Análisis de Eventos de Seguridad, la cuestion es que en mi aplicación necesito que un campo extraido de una base de datos, en este caso un campo texto, sea mostrado en una ventana; los registros extraidos de dicho campo son iguales a este:


|date=2009-04-23,time=12:38:34,devname=FWF60B7519755,device_id=F WF60B3907519755,...
...log_id=1059116020,type=app-ctrl,subtype=app-ctrl-all,pri=notice,vd=root|

La cadena es mucho más larga, pero decidí solo poner una parte para que se entienda mejor. Lo que yo quiero hacer es que en la ventana donde muestro el resultado de la consulta se muestren de la siguiente forma:

date=2009-04-23
time=12:38:34
devname=FWF60B7519755
device_id=FWF60B3907519755
log_id=1059116020
type=app-ctrl
subtype=app-ctrl-all
pri=notice
vd=root

Es decir, que no me muestre los "OR" (|) y quite las comas y muestre el resultado como expuse anteriormente.
Por favor necesitosu ayuda, no soy muy bueno con el manejo de cadenas...

Gracias
  #2 (permalink)  
Antiguo 24/05/2009, 10:13
Avatar de jonak  
Fecha de Ingreso: mayo-2009
Mensajes: 34
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Editar cadena extraida de BD

suponiendo que solo hay "|" en el principio y fin de la cadena seria algo así:

Código PHP:
<?
$cad 
='|date=2009-04-23,time=12:38:34,devname=FWF60B7519755,device_id=F WF60B3907519755,log_id=1059116020,type=app-ctrl,subtype=app-ctrl-all,pri=notice,vd=root|';

$cad2 substr($cad,1,(strlen($cad)-2));
$arrexplode(',',$cad2);
foreach(
$arr as $linea){
    echo 
$linea.'<br />';
}
?>
  #3 (permalink)  
Antiguo 24/05/2009, 10:15
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Editar cadena extraida de BD

umm puedes usar explode:

Código PHP:
$sin_or=explode("|","|date=2009-04-23,time=12:38:34,devname=FWF60B7519755,device_id=F WF60B3907519755,......log_id=1059116020,type=app-ctrl,subtype=app-ctrl-all,pri=notice,vd=root|date=2009-04-23,time=12:38:34,devname=FWF60B7519755,device_id=F WF60B3907519755,...
...log_id=1059116020,type=app-ctrl,subtype=app-ctrl-all,pri=notice,vd=root"
);

foreach(
$sin_or as $valor)
{
    
$sin_coma[]=explode(",",$valor);
}

foreach(
$sin_coma as $valor)
{
    foreach(
$valor as $dato)
    {
        echo 
"$dato<br />";
    }

__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.

Última edición por By_George; 24/05/2009 a las 10:20 Razón: lo corregi para que te imprima todos los datos
  #4 (permalink)  
Antiguo 24/05/2009, 10:26
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Editar cadena extraida de BD

Código :
Ver original
  1. $texto="aqui tu texto con comas y OR";
  2. explode(",",$texto);
  3. foreach($texto as $k=>$v)
  4. {
  5. echo str_replace("|","",$v).'<br />';
  6. }
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #5 (permalink)  
Antiguo 24/05/2009, 10:38
 
Fecha de Ingreso: mayo-2009
Mensajes: 37
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Editar cadena extraida de BD

Muchas muchas gracias Jonak,George y Argy, ya he podido hacerlo... Muchas gracias...
  #6 (permalink)  
Antiguo 24/05/2009, 10:45
 
Fecha de Ingreso: mayo-2009
Mensajes: 37
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Editar cadena extraida de BD

Hola de nuevo, me acaba de surgir una nueva duda, las cadenas que extraigo de la base de datos no siempre son iguales entonces, quisiera saber como extrar el valor de "devname".

date=2009-04-23,time=12:38:34,devname=FWF60B7519755,device_id=F 60B3907519755,...

Es decir, que busque "devname=" en la cadena y me saque lo que tiene hasta la proxima coma (,), osea FWF60B7519755.

Se que es algo tonto pero como les dije no soy muy bueno con el manejo de cadenas...
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 05:21.