Foros del Web » Programando para Internet » PHP »

Dudilla sobre preg_replace

Estas en el tema de Dudilla sobre preg_replace en el foro de PHP en Foros del Web. Hola buenas, alguien me podría decir como hacer que el $1 se me pongo dentro de la variable? Hago lo siguiente y cuando hago el ...
  #1 (permalink)  
Antiguo 28/07/2011, 08:01
 
Fecha de Ingreso: julio-2011
Mensajes: 5
Antigüedad: 12 años, 8 meses
Puntos: 0
Exclamación Dudilla sobre preg_replace

Hola buenas, alguien me podría decir como hacer que el $1 se me pongo dentro de la variable? Hago lo siguiente y cuando hago el echo me saca la página entera:

Pongo un ejemplo:

$texto = file_get_contents("http://www.los40.com/musica/listas/");
$song = preg_replace('/\<a href="\/musica\/cancion(.*?)>(.*?)\<\/a\>/is',"$2",$texto);
echo $song;
  #2 (permalink)  
Antiguo 28/07/2011, 08:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Dudilla sobre preg_replace

Entonces deberías usar preg_match() para extraer la coincidencia, ya que preg_replace() como su nombre lo indica hace un reemplazo.

Esa es la razón por la cual te muestra todo el documento.

Te invito a leer lo siguiente:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/07/2011, 08:08
 
Fecha de Ingreso: julio-2011
Mensajes: 5
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Dudilla sobre preg_replace

$texto = file_get_contents("http://www.los40.com/musica/listas/");
$song = preg_match('/\<a href="\/musica\/cancion(.*)>(.*)\<\/a\>/is',"$2",$texto);
echo $song;

Ahora me saca un 0... Si miras el código de la página de ejemplo que he puesto hay siempre coincidencias con un <a href="/musica/cancion....">LO QUE SEA</a>

Sabes por qué me sale un 0?

Muchas gracias :)
  #4 (permalink)  
Antiguo 28/07/2011, 08:11
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Dudilla sobre preg_replace

te recomiendo al menos leas la documentación de la función antes de usarla...
www.php.net/preg_match

pon un poco de esfuerzo de tu parte para que tengamos motivos de ayudarte.

saludos.
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 28/07/2011, 08:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Dudilla sobre preg_replace

Cita:
Iniciado por klaxy Ver Mensaje
[...] Sabes por qué me sale un 0? [...]
Leíste el enlace que te pase, ¿o estas haciendo las cosas al tanteo?

Edito: has caso a Hidek1
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 28/07/2011, 08:36
 
Fecha de Ingreso: julio-2011
Mensajes: 5
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Dudilla sobre preg_replace

Estoy mirando la documentación lo que no se es como extraer sólo una porción del texto, osea el preg_match me saca la coincidencia entera y yo sólo quiero que me saque la del segundo (.*)

Como puedo hacerlo?

Muchas gracias
  #7 (permalink)  
Antiguo 28/07/2011, 08:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Dudilla sobre preg_replace

Por favor, presta mas atención, el manual es bastante claro al respecto.

El tercer argumento de la función preg_match() almacena las coincidencias como un array, simplemente debes acceder al índice correcto del array.

De verdad, lee los enlaces que te colocamos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 28/07/2011, 09:25
 
Fecha de Ingreso: julio-2011
Mensajes: 5
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Dudilla sobre preg_replace

Vale me lo he leído y ya lo he conseguido, pasa que en el texto hay más de una coincidencia, como puedo hacer para que me busque todas las coincidencias?

Muchas gracias a todos y perdonad mi ignorancia.
  #9 (permalink)  
Antiguo 28/07/2011, 09:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Dudilla sobre preg_replace

Entonces usa preg_match_all(), eso también se explica en el primer enlace que te alcancé.

La ignorancia se perdona, no hace mal, lo que si no se justifica es la falta de atención.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 28/07/2011, 09:30
 
Fecha de Ingreso: julio-2011
Mensajes: 5
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Dudilla sobre preg_replace

Muchas gracias a todo y disculpadme por las molestias :)
  #11 (permalink)  
Antiguo 28/07/2011, 09:32
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Dudilla sobre preg_replace

Usa preg_match_all creo q era xD

Edit: Ups xDD
  #12 (permalink)  
Antiguo 28/07/2011, 09:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Dudilla sobre preg_replace

Cita:
Iniciado por klaxy Ver Mensaje
Muchas gracias a todo y disculpadme por las molestias :)
No es molestia, ni mucho menos.

Sucede que pierdes tiempo cuando haces tus preguntas una a una, cuando leyendo bien y reflexionando lo que se lee debería bastar.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: 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 15:34.