Foros del Web » Programando para Internet » PHP »

php expresiones regulares

Estas en el tema de php expresiones regulares en el foro de PHP en Foros del Web. Buenas tardes Se me presenta un inconveniente que es el siguiente: tengo un archivo de texto donde extraigo una información especifica con la siguiente función: ...
  #1 (permalink)  
Antiguo 11/04/2012, 13:40
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Sonrisa php expresiones regulares

Buenas tardes

Se me presenta un inconveniente que es el siguiente:

tengo un archivo de texto donde extraigo una información especifica con la siguiente función:

$Agent_name=substr($buffer, 90,13);

Esta función me extrae desde el carácter 90 más los 13 siguientes y lo que se imprime en pantalla es ROJAS JORGE

Y así lo hago con todos los datos que siguen hasta que me vuelve a salir el nombre de otra persona; como el nombre de la siguiente persona esta en la misma línea del archivo tengo que guardarlo en otra variable diferente a la anterior

$Agent_name1=substr($buffer, 152,14);



Entonces cuando yo voy a guardar los datos en la base de datos con la siguiente función

$mysql=mysql_query("INSERT INTO skill15 (agent_name, login_id,extension,state,time,acd_calls,ext_out_ca lls,ext_in_calls) VALUES ('$Agent_name','$Login_id','$Extension','$State',' $Time','$ACD_calls', '$Ext_out_calls','$Ext_in_calls')") ;



me guarda solo las primeras variables que declare, y si hago otra consulta para q me guarde las otras variables me genera error, entonces estuve investigando y me dijeron que para poder guardar todas las variables en la base de datos tengo que hacer expresiones regulares, y pues no conozco sobre esto pero lo que he podido conseguir es esta expresión [~~-~~] lo que quiero es que me capture desde el primer ~~ hasta el que sigue ~~ ,para así poder capturar la información que esta desde ese punto al otro y poder guardarlo en una sola variable, y así solucionar el problema que se me presenta, pero la expresión regular solo me captura los signos ~~ y no la información que se encuentra dentro de ellos


Espero me puedan asesorar

Gracias
  #2 (permalink)  
Antiguo 12/04/2012, 00:48
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: php expresiones regulares

El tema expresiones regulares es un poco largo para explicartelo aquí, puedes empezar por aquí y luego postear tu código cuando estés un poco más avanzado en el tema: http://www.google.com/search?client=...utf-8&oe=utf-8
En cualquier caso me parece que tu problema es más bien de lógica:
1. Abrir archivo
2. while(archivo)
dar valor a las variables
insertar en la DB
3. salir
No veo por qué tiene que darte error, tal vez puedas seguir con el mismo programa solucionando el tema del fallo.
Saludos
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 13/04/2012, 08:29
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: php expresiones regulares

gracias por responder

El archivo de texto se encuentra separado por , y cada dato esta entre " " y es una linea seguida que entre mas datos va a crecer mas a la derecha entonces yo tengo el codigo asi

include ("conexion.php");
$Link=conexion();
$gestor = @fopen("prueba.txt", "r");
if ($gestor) {
$i=
$cod=0;


while (($buffer = fgets($gestor, 399)) !== false) {

$Agent_name=substr($buffer, 90,12);//nombre del agente
$Login_id=substr($buffer, 104, 9);
$Extension=substr($buffer, 112,8);
$State=substr($buffer, 120,8);
$Time=substr($buffer, 128,8);
$ACD_calls=substr($buffer, 135,7);
$Ext_out_calls=substr($buffer, 139,5);
$Ext_in_calls=substr($buffer, 143,5);


estos son los campos para solo una persona y esos me los guarda en la base de datos perfectamente pero al momento de guardar otra persona me toca crear otra variable para cada uno asi:

$Agent_name1=substr($buffer, 90,12);//nombre del agente
$Login_id1=substr($buffer, 104, 9);
$Extension1=substr($buffer, 112,8);
$State1=substr($buffer, 120,8);
$Time1=substr($buffer, 128,8);
$ACD_calls1=substr($buffer, 135,7);
$Ext_out_calls1=substr($buffer, 139,5);
$Ext_in_calls1=substr($buffer, 143,5);

entonces al momento de guardar esto en la base de datos me sale error y solo me guarda siempre la primera persona

la consulta la hago asi

$mysql=mysql_query("INSERT INTO skill16 (agent_name, login_id,extension,state,time,acd_calls,ext_out_ca lls,ext_in_calls) VALUES ('$Agent_name','$Login_id','$Extension','$State',' $Time','$ACD_calls', '$Ext_out_calls','$Ext_in_calls')") or die ("problemas en el insert".mysql_error());

me puedes ayudar con mi inconveniente

gracias seria una gran ayuda

Etiquetas: expresiones, mysql, regulares, sql, variables
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 17:26.