Foros del Web » Programando para Internet » PHP »

extraer datos de un div o span

Estas en el tema de extraer datos de un div o span en el foro de PHP en Foros del Web. He probado el siguiente código; Código PHP: $texto  =  "<div id ='carapan'>esto es un ejemplo de texto se mostrara como funcionan en modo perezoso o codicioso</div>" ; $patron  =  '/<div id =' carapan '>(.*)<\/div>/' ; preg_match_all  ( $patron ,  $wholestolenpage  ,  $matches ); ...
  #1 (permalink)  
Antiguo 29/09/2011, 06:45
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 8 años, 3 meses
Puntos: 6
extraer datos de un div o span

He probado el siguiente código;

Código PHP:
$texto "<div id ='carapan'>esto es un ejemplo de texto se mostrara como funcionan en modo perezoso o codicioso</div>";
$patron '/<div id ='carapan'>(.*)<\/div>/';
preg_match_all ($patron$wholestolenpage $matches);
echo 
"<pre>";
print_r($matches[1]);
echo 
"</pre>"
y me funciona pero al hacer-lo con un span de una pagina web que extraigo, así;

pagweb; http://www.bolsamania.com/bolsa-coti...a--ibex35.html

Donde hago lo siguiente;

// Se extrae toda la página de la URL origen
$wholestolenpage = get_url_contents($url1);
Código PHP:
function get_url_contents($url)
{
    
$crl curl_init();
    
$timeout 5;
    
curl_setopt ($crlCURLOPT_URL,$url);
    
curl_setopt ($crlCURLOPT_RETURNTRANSFER1);
    
curl_setopt ($crlCURLOPT_CONNECTTIMEOUT$timeout);
    
$ret curl_exec($crl);
    
curl_close($crl);
    return 
$ret;

// Se eliminan todos los saltos de línea para mayor facilidad posterior
$wholestolenpage = str_replace("\n","",$wholestolenpage);

// En la páginan original los caracteres no están codificados, se arregla.
$wholestolenpage = mb_convert_encoding($wholestolenpage,'ISO-8859-1','UTF-8');

y después hago lo mismo pero de la sigueinte manera;

Código PHP:
$patron '/<span id="F|ls_table_ficha_cabecera_indice|item_50107012_55_tr|precio_ultima_cotizacion|div">(.*)<\/span>/';
preg_match_all ($patron$wholestolenpage $matches);
echo 
"<pre>";
print_r($matches[1]);
echo 
"</pre>"
y me imprime;

un array de 54 posiciones pero sin valor alguno :S


Gracias de antemano
  #2 (permalink)  
Antiguo 29/09/2011, 11:31
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 7 años, 2 meses
Puntos: 793
Respuesta: extraer datos de un div o span

Hola marcwolf, para esos casos es mucho mejor usar la clase DOMDocument, las expresiones regulares no siempre son la mejor opción en estos casos.

Un ejemplo básico del contenido del div que intentas sacar con sus span:

Código PHP:
Ver original
  1. <?php
  2. $context = stream_context_create(array('http' => array('timeout' => 5)));
  3. $url = file_get_contents('http://www.bolsamania.com/bolsa-cotizaciones/acciones/espana--ibex35.html', 0, $context);
  4. $doc = new DOMDocument();
  5. $doc->loadHTML($url);
  6. $fci = $doc->getElementById('ls_table_ficha_cabecera_indice');
  7. $spans = $fci->getElementsByTagName('span');
  8.  
  9. for ($i = 0; $i < $spans->length; $i++) {
  10.     echo $spans->item($i)->nodeValue . '<br />';
  11. }

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 29/09/2011, 14:10
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 8 años, 3 meses
Puntos: 6
Respuesta: extraer datos de un div o span

Muchas gracias andresdzphp!!!
  #4 (permalink)  
Antiguo 20/02/2013, 16:47
 
Fecha de Ingreso: febrero-2013
Mensajes: 1
Antigüedad: 5 años, 7 meses
Puntos: 0
Respuesta: extraer datos de un div o span

Broooootheeeer!!!! Mi hermanoooo, mi amigooooo!! como decimos aca en Guateee

"Que Crack!!! Que Maldito!! Que pilaaas!! Que Genio!!! Que Nerdo!! Que WOOOW!!!" Tengo un código de 150 líneas que lo acabás de resumir en 12!!!!

Aparte que no sabía como hacer para sacar todo el contenido de unos Spans!!!

HICE CUENTA SOLAMENTE PARA AGRADECERTELOOOO!!! MUCHAAAS GRACIAS POR ESE GENIO E INTELECTO! QUE HAS COMPARTIDO! :D

100 PUNTOS andresdzphp!!!!!

Etiquetas: clase, curl, domdocument, html, libreria, span
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:08.