Foros del Web » Programando para Internet » PHP »

expresion regular php

Estas en el tema de expresion regular php en el foro de PHP en Foros del Web. Hola a todos Necesito de su ayuda tengo este código y me captura una serie de datos entre letras y números pero solo quiero capturar ...
  #1 (permalink)  
Antiguo 30/07/2012, 16:05
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
expresion regular php

Hola a todos

Necesito de su ayuda tengo este código y me captura una serie de datos entre letras y números pero solo quiero capturar los números este es un pequeño ejemplo

"Archivo que se genera"

Voi ys m na : UN BCMS IL EP T ACD SPEE AN ABAN TAL AFTE LO LO AUX/ VG ERV
DAY CALL ANS LL TIME TIM CALL N UT OTHE TAFF EVL
6/28/12 56 0:08 1 0:09 3:23 0:00 10 22 242:02 1.1 90
6/29/12 47 0:25 16 2:45 4:40 0:00 0 3 530:59 1.1 64
6/30/12 0 0:00 0 0:00 0:00 0:00 0 0 0:00 0.0
7/01/12 0 0:00 0 0:00 0:00 0:00 0 0 0:00 0.0
7/02/12 0 0:00 0 0:00 0:00 0:00 0 0 0:00 0.0
7/03/12 28 0:05 0 0:00 4:38 0:00 0 1 611:57 1.2 93
7/04/12 0 0:00 0 0:00 0:00 0:00 0 0 0:00 0.0
------- ---- ---- -- ---- ---- ---- -- -- ------ ---- ---

y como quiero que quede

6/28/12 56 0:08 1 0:09 3:23 0:00 10 22 242:02 1.1 90
6/29/12 47 0:25 16 2:45 4:40 0:00 0 3 530:59 1.1 64
6/30/12 0 0:00 0 0:00 0:00 0:00 0 0 0:00 0.0
7/01/12 0 0:00 0 0:00 0:00 0:00 0 0 0:00 0.0
7/02/12 0 0:00 0 0:00 0:00 0:00 0 0 0:00 0.0
7/03/12 28 0:05 0 0:00 4:38 0:00 0 1 611:57 1.2 93
7/04/12 0 0:00 0 0:00 0:00 0:00 0 0 0:00 0.0


Les dejo el codigo
Código PHP:
<?php 
    
include("conexion.php"); 
$link=conexion(); 
$gestor = @fopen("REPORTES/Reporte_Ultimos7_dias.txt""r");//tarificacion04202012.txt 
if ($gestor) { 
$i
$cod=0
    echo 
"<table border='1' align='center'>"
    echo 
"<tr>"
    echo 
"<td>cod</td><td>Date</td><td>Time</td><td>Sec_dur</td><td>Cond_code</td><td>Calling_num</td><td>Dialed_num</td><td>Auth_code</td><td>in_trk_code</td><td>in_crt_id</td><td>Code_used</td><td>Out_crt_id</td><td>Out_crt</td>"
    echo 
"</tr>"
//pag 70 http://www.edwardybella.com/archivos/crepusculo.pdf 
//http://www.cs101-class.org/# 
    
while (($buffer fgets($gestor999)) !== false) { 
    
//$resultado=preg_split('/[A-z|;]/', $buffer[1]); 
   // if (($i % 2) != 0) {     
    
$Date=substr($buffer0,7); 
    
$Time=substr($buffer,  11,5); 
    
$Sec_dur=substr($buffer18,4); 
    
$Cond_code=substr($buffer26,2);     
    
$Calling_num=substr($buffer30,4); 
    
$Dialed_num=substr($buffer36,4); 
    
//echo "<br>"; 
    //echo $Dialed_num; 
    
$Auth_code=substr($buffer44,4); 
    
$in_trk_code=substr($buffer51,2); 
    
$in_crt_id=substr($buffer56,2); 
    
$Code_used=substr($buffer60,6); 
    
$Out_crt_id=substr($buffer69,4); 
    
$Out_crt=substr($buffer75,3); 
     
    
$Date=trim($Date);//Date 
    
$Time=trim($Time);//Time 
    
$Sec_dur=trim($Sec_dur);//Sec-dur 
    
$Cond_code=trim($Cond_code);//Cond-code 
    
$Calling_num=trim($Calling_num);//Calling-num 
    
$Dialed_num=trim($Dialed_num);//Dialed-num 
    
$Auth_code=trim($Auth_code);//Auth-code 
    
$in_trk_code=trim($in_trk_code);//in-trk-code 
    
$in_crt_id=trim($in_crt_id);//in-crt_id 
    
$Code_used=trim($Code_used);//Code-used 
    
$Out_crt_id=trim($Out_crt_id);//Out-crt-id 
    
$Out_crt=trim($Out_crt);//Out-crt 

    
if($Cond_code!="D" && $Cond_code!=""){ 

    echo 
"<tr>"
    echo 
"<td>".$cod."</td>"
    echo 
"<td>".$Date."</td>"
    echo 
"<td>".$Time."</td>"
    echo 
"<td>".$Sec_dur."</td>"
    echo 
"<td>".$Cond_code."</td>"
    echo 
"<td>".$Calling_num."</td>"
    echo 
"<td>".$Dialed_num."</td>"
    echo 
"<td>".$Auth_code."</td>"
    echo 
"<td>".$in_trk_code."</td>"
    echo 
"<td>".$in_crt_id."</td>"
    echo 
"<td>".$Code_used."</td>"
    echo 
"<td>".$Out_crt_id."</td>"
    echo 
"<td>".$Out_crt."</td>"
    echo 
"</tr>"

    
$cod++; 


    if(
$Auth_code==""){ 
    
$Auth_code=0
    } 
    if(
$Code_used==""){ 
    
$Code_used=0
    } 
    if(
$Out_crt_id==""){ 
    
$Out_crt_id=0
    } 
    if(
$in_crt_id==""){ 
    
$in_crt_id=0
    } 
    if(
$in_trk_code==""){ 
    
$in_trk_code=0
    } 

$mysql=mysql_query("INSERT INTO estados (dato1,dato2 ,dato3,dato4,dato5,dato6,dato7,dato8,dato9,dato10,dato11) VALUES ('$Date','$Time','$Sec_dur','$Cond_code','$Calling_num','$Dialed_num', '$Auth_code','$in_trk_code','$in_crt_id','$Code_used','$Out_crt_id')") or die ("problemas en el insert".mysql_error()); 

    } 

    
//} 
    
$i++; 
    } 

    echo 
"</table>";         

    if (!
feof($gestor)) { 
        echo 
"Error: fallo inesperado de fgets()\n"

    } 
    
fclose($gestor);     

mysql_close($link); 


?>
Espero me ayuden es un poco urgente y no se que mas hacer :( las expresiones la verdad no las se manejar muy bien Gracias
  #2 (permalink)  
Antiguo 30/07/2012, 17:22
Avatar de Nopal_Studio  
Fecha de Ingreso: julio-2012
Ubicación: DF
Mensajes: 42
Antigüedad: 11 años, 9 meses
Puntos: 10
De acuerdo Respuesta: expresion regular php

Hola wendyl:

Pues lo mas rapido que se me ocurre es:
  1. Convertir toda tu cadena a minusculas
  2. Construir un arreglo con todo el abecedario (Ingles y caracteres: " : " y " / ").
  3. Aplicar la funcion de reemplazar str_replace (con base a tu arreglo)


Código PHP:
Ver original
  1. $texto = strtolower($texto);
  2. $arr = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t"," u", "v", "w", "x", "y", "z"," : "," / "];
  3. $texto_nuevo = str_replace($arr, "", $texto);
  4.  
  5. echo $texto_nuevo;

éxito, espero que te sirva..

Última edición por Nopal_Studio; 30/07/2012 a las 17:25 Razón: Me hacian falta unos caracteres; " : ", " / "
  #3 (permalink)  
Antiguo 30/07/2012, 17:29
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: expresion regular php

Si todas las cadenas van a tener el mismo formato (texto-número) usa

$fplog = file_get_contents('flujo.txt','r'); // para devolver el contenido

$a=preg_split("/([0-9](.|\n)+)/", $fplog,2,PREG_SPLIT_DELIM_CAPTURE); // para devolver dos cadenas partidas justo donde comienza el primer número e incluyendo el primer número y lo demás inclusive saltos de línea entre paréntesis de la expresión regular

echo $a[1]; // para devolver la segunda cadena

Para formatearlo en css utiliza white-space:pre-wrap al contenedor

Un saludo
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #4 (permalink)  
Antiguo 31/07/2012, 07:38
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: expresion regular php

Cita:
Iniciado por dontexplain Ver Mensaje
Si todas las cadenas van a tener el mismo formato (texto-número) usa

$fplog = file_get_contents('flujo.txt','r'); // para devolver el contenido

$a=preg_split("/([0-9](.|\n)+)/", $fplog,2,PREG_SPLIT_DELIM_CAPTURE); // para devolver dos cadenas partidas justo donde comienza el primer número e incluyendo el primer número y lo demás inclusive saltos de línea entre paréntesis de la expresión regular

echo $a[1]; // para devolver la segunda cadena

Para formatearlo en css utiliza white-space:pre-wrap al contenedor

Un saludo
Hola

Gracias por tu respuesta, probé tu código y resulta que la pagina se cae y muestra un mensaje de no se ha recibido ningún dato, lo coloque antes y después del while y muestra el mismo mensaje me puede colaborar te agradezco mucho
  #5 (permalink)  
Antiguo 31/07/2012, 07:41
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: expresion regular php

Cita:
Iniciado por Nopal_Studio Ver Mensaje
Hola wendyl:

Pues lo mas rapido que se me ocurre es:
  1. Convertir toda tu cadena a minusculas
  2. Construir un arreglo con todo el abecedario (Ingles y caracteres: " : " y " / ").
  3. Aplicar la funcion de reemplazar str_replace (con base a tu arreglo)


Código PHP:
Ver original
  1. $texto = strtolower($texto);
  2. $arr = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t"," u", "v", "w", "x", "y", "z"," : "," / "];
  3. $texto_nuevo = str_replace($arr, "", $texto);
  4.  
  5. echo $texto_nuevo;

éxito, espero que te sirva..
Hola tu código no genero ningún error pero me imprime todo el texto en lineas y no me elimina las letras que es lo que quiero hacer que en mi tabla aparezcan solo los números que aparecen después de la palabra DAY
  #6 (permalink)  
Antiguo 31/07/2012, 07:42
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: expresion regular php

Cita:
Iniciado por wendyl Ver Mensaje
Hola

Gracias por tu respuesta, probé tu código y resulta que la pagina se cae y muestra un mensaje de no se ha recibido ningún dato, lo coloque antes y después del while y muestra el mismo mensaje me puedes colaborar te agradezco mucho
  #7 (permalink)  
Antiguo 31/07/2012, 08:04
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: expresion regular php

Ejecuta un bucle sobre la cadena que compruebe qué caracteres itera

$fplog = file_get_contents('flujo.txt','r');

$strl=strlen($fplog);
for ($i=0; $i < $strl; $i++) {

$f=preg_match("/[0-9|\.|\/|:|\n| ]/", $fplog[$i]);
if ($f == 1) {

echo $fplog[$i];
}
}

Si siempre son dos líneas de texto puede usar

$fplog = file_get_contents('flujo.txt','r');
$a=preg_split("/\n.+\n/", $fplog,2);
echo $a[1];

donde la cadena se parte justo donde comienza un espacio seguido de loquesea seguido de un espacio.

Un saludo
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #8 (permalink)  
Antiguo 31/07/2012, 08:35
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: expresion regular php

Cita:
Iniciado por dontexplain Ver Mensaje
Ejecuta un bucle sobre la cadena que compruebe qué caracteres itera

$fplog = file_get_contents('flujo.txt','r');

$strl=strlen($fplog);
for ($i=0; $i < $strl; $i++) {

$f=preg_match("/[0-9|\.|\/|:|\n| ]/", $fplog[$i]);
if ($f == 1) {

echo $fplog[$i];
}
}

Si siempre son dos líneas de texto puede usar

$fplog = file_get_contents('flujo.txt','r');
$a=preg_split("/\n.+\n/", $fplog,2);
echo $a[1];

donde la cadena se parte justo donde comienza un espacio seguido de loquesea seguido de un espacio.

Un saludo

Hola Gracias por tu ayuda, tengo una duda la variable que me captura los números cual es $fplog o $i

Gracias
  #9 (permalink)  
Antiguo 31/07/2012, 08:51
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: expresion regular php

Cita:
Iniciado por wendyl Ver Mensaje
Hola Gracias por tu ayuda, tengo una duda la variable que me captura los números cual es $fplog o $i

Gracias
En un bucle $i es el contador, eso es un número que se incrementa a cada iteración o vuelta del bucle.

$fplog es la cadena completa. $fplog[0] devuelve el primer carácter de la cadena, $fplog[1] devuelve el segundo carácter de la cadena, etc.

Lo que hace el bucle es ir carácter por carácter y busca una expresión regular para ver si coincide. Si coincide devuelve el número de coincidencias, en este caso el máximo de coincidencias posibles es 1 si es un número ([0-9]), dos puntos (:), salto de línea (\n), punto (\.) o barra (\/) y el mínimo 0 si es cualquier otra cosa. Si devuelve 1 se escribe el carácter y si no, no se hace nada.

Un saludo.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #10 (permalink)  
Antiguo 31/07/2012, 09:17
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: expresion regular php

Cita:
Iniciado por dontexplain Ver Mensaje
En un bucle $i es el contador, eso es un número que se incrementa a cada iteración o vuelta del bucle.

$fplog es la cadena completa. $fplog[0] devuelve el primer carácter de la cadena, $fplog[1] devuelve el segundo carácter de la cadena, etc.

Lo que hace el bucle es ir carácter por carácter y busca una expresión regular para ver si coincide. Si coincide devuelve el número de coincidencias, en este caso el máximo de coincidencias posibles es 1 si es un número ([0-9]), dos puntos (:), salto de línea (\n), punto (\.) o barra (\/) y el mínimo 0 si es cualquier otra cosa. Si devuelve 1 se escribe el carácter y si no, no se hace nada.

Un saludo.

Ha ya entendí, que pena la molestia entonces como pongo cada dato en un <td> para después proceder a guardarlo en una base de datos???
  #11 (permalink)  
Antiguo 31/07/2012, 09:32
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: expresion regular php

Cada dato está separado por espacio verdad?

En ese caso, para guardarlo en una db habría que parsearlo. Se me ocurre partir toda la cadena (la cadena sin el texto) en varias cadenas separadas por salto de línea y luego cada una de ellas separar cada dato por espacio.

$iteracion=-1;
$cadena="";
for ($i=0; $i < $strl; $i++) {
$f=preg_match("/[0-9|\.|\/|:|\n| ]/", $fplog[$i]);
if ($f == 1) {

$cadena .= $fplog[$i];
}

}

$subcadenas=preg_split("/\n/", $cadena);
foreach ($subcadenas as $valor) {
$iteracion++;
$subsubcadenas[$iteracion]=preg_split("/ /", $valor);

}

ahora, subsubcadenas es un array bidimensional con

primera dimensión: cada una de las líneas de la cadena principal
segunda dimensión: dentro de cada una de las líneas cada uno de los datos

Para acceder al 47 bastaría con $subsubcadenas[1][1];

Un saludo.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #12 (permalink)  
Antiguo 31/07/2012, 09:57
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: expresion regular php

Cita:
Iniciado por dontexplain Ver Mensaje
Cada dato está separado por espacio verdad?

En ese caso, para guardarlo en una db habría que parsearlo. Se me ocurre partir toda la cadena (la cadena sin el texto) en varias cadenas separadas por salto de línea y luego cada una de ellas separar cada dato por espacio.

$iteracion=-1;
$cadena="";
for ($i=0; $i < $strl; $i++) {
$f=preg_match("/[0-9|\.|\/|:|\n| ]/", $fplog[$i]);
if ($f == 1) {

$cadena .= $fplog[$i];
}

}

$subcadenas=preg_split("/\n/", $cadena);
foreach ($subcadenas as $valor) {
$iteracion++;
$subsubcadenas[$iteracion]=preg_split("/ /", $valor);

}

ahora, subsubcadenas es un array bidimensional con

primera dimensión: cada una de las líneas de la cadena principal
segunda dimensión: dentro de cada una de las líneas cada uno de los datos

Para acceder al 47 bastaría con $subsubcadenas[1][1];

Un saludo.

Mira mi codigo pero o se como hacer el insert para la bd

Código PHP:
<?php
    
include("conexion.php");
$link=conexion();

    echo 
"<table border='1' align='center'>";
    echo 
"<tr>";
    echo 
"<td>Dato1</td><td>Dato2</td><td>Dato3</td><td>Dato4</td><td>Dato5</td><td>Dato6</td><td>Dato7</td><td>Dato8</td><td>Dato9</td><td>Dato10</td><td>Dato11</td><td>Dato12</td>";
    echo 
"</tr>";


$fplog file_get_contents('REPORTES/Reporte_Ultimos7_dias.txt','r');

$strl=strlen($fplog);
for (
$i=0$i $strl$i++) { 

$iteracion=-1;
$cadena="";
$f=preg_match("/[0-9|\.|\/|:|\n| ]/"$fplog[$i]);
if (
$f == 1) {

$cadena .= $fplog[$i];
echo 
$fplog[$i];

}

$subcadenas=preg_split("/\n/"$cadena);
foreach (
$subcadenas as $valor) {
$iteracion++;
$subsubcadenas[$iteracion]=preg_split("/ /"$valor);

}

}

mysql_close($link);
?>
  #13 (permalink)  
Antiguo 31/07/2012, 10:17
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: expresion regular php

Si ya tienes la estructura en $subsubcadenas (cosa que no me has dicho si funciona porque yo no lo comprobé sólo escribí el código) basta con otro bucle para insertar los datos

mysql_connect("localhost","usuario","pass");
mysql_select_db("basedatos");

foreach($subsubcadenas as $valor){
mysql_query("INSERT INTO nombretabla (dato1,dato2,dato3) VALUES('"+$valor[0]+"','"+$valor[1]+"','"+$valor[2]+"' .....
}

Eso ya lo continúas tú.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #14 (permalink)  
Antiguo 31/07/2012, 10:37
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: expresion regular php

Cita:
Iniciado por dontexplain Ver Mensaje
Si ya tienes la estructura en $subsubcadenas (cosa que no me has dicho si funciona porque yo no lo comprobé sólo escribí el código) basta con otro bucle para insertar los datos

mysql_connect("localhost","usuario","pass");
mysql_select_db("basedatos");

foreach($subsubcadenas as $valor){
mysql_query("INSERT INTO nombretabla (dato1,dato2,dato3) VALUES('"+$valor[0]+"','"+$valor[1]+"','"+$valor[2]+"' .....
}

Eso ya lo continúas tú.


Pues las subcadenas no me generan ningún error pero al intentar hacer el insert no me reconoce el valor2,valor3.... el error que sale es este:

Notice: Undefined offset: 2 in C:\xampp\htdocs\principal\Minuto\actualizar_nuevo1 .php on line 34

Código PHP:
<?php
    
include("conexion.php");
$link=conexion();

    echo 
"<table border='1' align='center'>";
    echo 
"<tr>";
    echo 
"<td>Dato1</td><td>Dato2</td><td>Dato3</td><td>Dato4</td><td>Dato5</td><td>Dato6</td><td>Dato7</td><td>Dato8</td><td>Dato9</td><td>Dato10</td><td>Dato11</td><td>Dato12</td>";
    echo 
"</tr>";


$fplog file_get_contents('REPORTES/Reporte_Ultimos7_dias.txt','r');

$strl=strlen($fplog);
for (
$i=0$i $strl$i++) { 

$iteracion=-1;
$cadena="";
$f=preg_match("/[0-9|\.|\/|:|\n| ]/"$fplog[$i]);
if (
$f == 1) {

$cadena .= $fplog[$i];
//echo $cadena;

}

$subcadenas=preg_split("/\n/"$cadena);
foreach (
$subcadenas as $valor) {
$iteracion++;
$subsubcadenas[$iteracion]=preg_split("/ /"$valor);

}
foreach(
$subsubcadenas as $valor){
mysql_query("INSERT INTO estados (dato1,dato2,dato3,dato4,dato5,dato6,dato7,dato8,dato9,dato10,dato11) 
VALUES('"
+$valor[0]+"','"+$valor[1]+"','"+$valor[2]+"','"+$valor[3]+"','"+$valor[4]+"','"+$valor[5]+"','"+$valor[6]+"','"+$valor[7]+"','"+$valor[8]+"','"+$valor[9]+"','"+$valor[10]+"'");
}
}

mysql_close($link);
?>
  #15 (permalink)  
Antiguo 31/07/2012, 10:40
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: expresion regular php

ESo sucede normalmente porque se accede a elementos de un array que no existen.

Comprueba que el array se creó correctamente y tiene los datos

Ejecuta print_r($subsubcadenas);
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #16 (permalink)  
Antiguo 31/07/2012, 10:57
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: expresion regular php

Cita:
Iniciado por dontexplain Ver Mensaje
ESo sucede normalmente porque se accede a elementos de un array que no existen.

Comprueba que el array se creó correctamente y tiene los datos

Ejecuta print_r($subsubcadenas);
Ejecute el print y aparece esto Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => : ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] => Array ( [0] => [1] => ) ) Array ( [0] =>

demasiadas veces

y ejecute el mismo pero con $valor y salen los arrays con los números pero aun así no me guarda nada en la base de datos por el error que escribí antes, espero me ayudes gracias

Última edición por wendyl; 31/07/2012 a las 13:15
  #17 (permalink)  
Antiguo 31/07/2012, 13:15
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: expresion regular php

Alguna ayuda no se si hay algo mal o tiene que salir así, ya solo me falta poder guardar los valores en la base de datos
  #18 (permalink)  
Antiguo 31/07/2012, 13:45
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: expresion regular php

TIenes que comprobar que los datos se están escribiendo correctamente en cada una de las variables. Para ello usa sucesivos echo's para poder ver el resultado que ofrecen.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #19 (permalink)  
Antiguo 31/07/2012, 14:58
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: expresion regular php

Cita:
Iniciado por dontexplain Ver Mensaje
TIenes que comprobar que los datos se están escribiendo correctamente en cada una de las variables. Para ello usa sucesivos echo's para poder ver el resultado que ofrecen.
Hola creo que el error es en el ultimo foreach por que solo me devuelve valores array ayudame porfavor no se como solucionarlo :(

Etiquetas: expresion, mysql, regular, sql
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 07:47.