Foros del Web » Programando para Internet » PHP »

Ayuda con esto! Problema con Arrays!

Estas en el tema de Ayuda con esto! Problema con Arrays! en el foro de PHP en Foros del Web. Hola. Hace días mencioné que estoy tratando de hacerme un pequeño capturador de datos externos (spider) para sacar contenido de uno de mis sitios y ...
  #1 (permalink)  
Antiguo 29/10/2007, 07:58
Avatar de NacHox  
Fecha de Ingreso: enero-2005
Mensajes: 25
Antigüedad: 19 años, 4 meses
Puntos: 1
Ayuda con esto! Problema con Arrays!

Hola.

Hace días mencioné que estoy tratando de hacerme un pequeño capturador de datos externos (spider) para sacar contenido de uno de mis sitios y asignarselo a otro. Llevo desarrollado muy poco, pero tengo un problema que deseo solucionar. Cuando ejecuto el script, la salida que me muestra por pantalla es la siguiente:

Código:
Array ( [0] => estoy probando [1] => uiu [2] => mola! [3] => funciona! :D )
Cuando en realidad yo quisiera que fuese una salida "limpia" osea solo el texto que yo necesito (que en este caso el script pilla todo lo que está entre <b></b> de una determinada página que yo le indiqué.

El codigo que uso para eso es el siguiente:

Código PHP:
<?php
$contenido
=file_get_contents('http://www.aquivaelsitio.com/prueba.html');

$regexp='|<b>(.*?)</b>|is';

preg_match_all($regexp,$contenido,$matches);

print_r($matches[1]);
?>
Alguien puede ayudarme u orientarme porfavor?

De antemano GRACIAS!

Última edición por NacHox; 29/10/2007 a las 08:47
  #2 (permalink)  
Antiguo 29/10/2007, 10:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Ayuda con esto! Problema con Arrays!

No entiendo tu duda, podrias explicar mas? a que te refieres con salida limpia? Tu le estas indicando que te seleccione todo lo que esta entre <b> y </b> no es eso lo que tu necesitas?

Saludos.
  #3 (permalink)  
Antiguo 29/10/2007, 10:59
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Sonrisa Re: Ayuda con esto! Problema con Arrays!

NachoX: printr_r() muestra asi los datos....... pero siempre puedes hacer print o echo :)

Una duda: para que es el |is que pones en la expresion regular ? me urge saber

Otra duda mas: por que el | y no / ??? // gracias!!!!!!!!!!!!!!!!!!!!!
  #4 (permalink)  
Antiguo 29/10/2007, 11:51
Avatar de NacHox  
Fecha de Ingreso: enero-2005
Mensajes: 25
Antigüedad: 19 años, 4 meses
Puntos: 1
Re: Ayuda con esto! Problema con Arrays!

Cita:
Iniciado por GatorV Ver Mensaje
No entiendo tu duda, podrias explicar mas? a que te refieres con salida limpia? Tu le estas indicando que te seleccione todo lo que esta entre <b> y </b> no es eso lo que tu necesitas?

Saludos.
mira.... http://www.nachox.com/test.php

Ves lo que muestra?? yo necesito que muestre solo el texto que pilló entre los <b></b> y no así los array con su indice correspondiente. A eso me refiero con "limpiarlo" para que solo muestre lo ya mencionado.

A ver si pueden ayudarme,
Saludos!
  #5 (permalink)  
Antiguo 29/10/2007, 12:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Ayuda con esto! Problema con Arrays!

Puedes hacerlo de muchas formas, puedes imprimir directo por indice:
Código PHP:
echo $matches[1][0]; // te debe de imprimir "estoy probando"; 
Puedes hacerlo por un ciclo:
Código PHP:
foreach( $matches[1] as $match ) {
      echo 
$match;

Puedes juntarlo en una lista:
Código PHP:
echo implode", "$matches[1] ); 
Saludos.
  #6 (permalink)  
Antiguo 29/10/2007, 12:27
Avatar de NacHox  
Fecha de Ingreso: enero-2005
Mensajes: 25
Antigüedad: 19 años, 4 meses
Puntos: 1
Re: Ayuda con esto! Problema con Arrays!

Muchas Gracias GatorV!

Funciona todo a la perfección. Ahora podré seguir adelante con mi spider!

Nuevamente Gracias!
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 13:06.