Foros del Web » Programando para Internet » PHP »

no puedo con regex

Estas en el tema de no puedo con regex en el foro de PHP en Foros del Web. hola siempre tengo problemas con regex , menos mal hay este foro.. :) jeje miren Código PHP: <? $var_original  =  "<song file='http://www.54.131.209.223:81/buenamusica/songs/Bachatas/Antony Santos/Antony Santos - Cojelo Ahi.Skm' title='Antony Santos - Cojelo Ahi' />" ;   $pattern_search  = ...
  #1 (permalink)  
Antiguo 08/03/2009, 09:48
Avatar de razengan  
Fecha de Ingreso: agosto-2007
Ubicación: Lima - Perulandia
Mensajes: 117
Antigüedad: 16 años, 8 meses
Puntos: 2
no puedo con regex

hola siempre tengo problemas con regex , menos mal hay este foro.. :) jeje

miren
Código PHP:

<?

$var_original 
"<song file='http://www.54.131.209.223:81/buenamusica/songs/Bachatas/Antony Santos/Antony Santos - Cojelo Ahi.Skm' title='Antony Santos - Cojelo Ahi' />";
 
$pattern_search ="/file='(.*?)' title='(.*?)'$/is";
 
$pattern_replace  "$1 <br> $2";

 echo 
preg_replace($pattern_search$pattern_replace$var_original);  
?>
se supone que deberia funcionar pero por algun maldito motivo no funciona :(
  #2 (permalink)  
Antiguo 08/03/2009, 09:54
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: no puedo con regex

Cita:
se supone que deberia funcionar pero por algun maldito motivo no funciona :(
El maldito motivo por el cual no funciona es porque tienes:

/file='(.*?)' title='(.*?)'$/is

Eso quiere decir que title='loquesea' tiene que ser LO ULTIMO de la cadena.
Si lo eliminas funcona bien.
  #3 (permalink)  
Antiguo 08/03/2009, 10:37
Avatar de razengan  
Fecha de Ingreso: agosto-2007
Ubicación: Lima - Perulandia
Mensajes: 117
Antigüedad: 16 años, 8 meses
Puntos: 2
gracias amigo..

ups! se me paso jeje gracias RonRuby

mira estoy haciendo un parser y los datos los recibo por post , hago un explote por retorno de carro para que lea linea por linea y no funka ... me puedes ayudar ?

Código PHP:
<?php
// Supones que $cadena viene de un formulario (es decir, $cadena sería $_POST['cadena'] o GET.
// Primero creamos el array
$registro explode ("\r",$cadena);
// Ahora se cuenta cuantos registros meteremos realmente
$max count($registro);
for (
$i=0$i<$max$i++) {
// Ahora hay que separar los datos de cada registro
$datos $registro[$i];

 
$pattern_search ="/<song file='(.*?)' title='(.*?)' \/>/is";
 
$pattern_replace  "$1";

 echo 
preg_replace($pattern_search$pattern_replace$datos); 

}
?>

Última edición por GatorV; 08/03/2009 a las 17:46
  #4 (permalink)  
Antiguo 08/03/2009, 13:13
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: no puedo con regex

Ok, vamos a hacer un poquito de debugging de tu codigo.

Luego de hacer el explode haz un
var_dump($registro);
Luego de eso, dentro de el for, haremos:
var_dump($datos); //despues que declaras esta variable claro esta

Dime que te devuelve.
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:27.