Foros del Web » Programando para Internet » PHP »

extraer datos de HTML

Estas en el tema de extraer datos de HTML en el foro de PHP en Foros del Web. tengo este codigo html... y quiero extraer los datos que estan entre las etiquetas <span id='algo'></span> Código HTML: <span id= "sp_EF_pc_0" > Dólar </span> <span ...
  #1 (permalink)  
Antiguo 25/03/2009, 11:52
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Pregunta extraer datos de HTML

tengo este codigo html... y quiero extraer los datos que estan entre las etiquetas <span id='algo'></span>


Código HTML:
 <span id="sp_EF_pc_0">Dólar</span> <span id="sp_EF_pc_0">5070</span> <span id="sp_EF_pv_0">5120</span> <span id="sp_EF_fl_0"></span> <span id="lbl_moneda_EF_1">Peso Argentino</span> <span id="sp_EF_pc_1">1350</span> <span id="sp_EF_pv_1">1400</span> <span id="sp_EF_fl_1"></span> <span id="lbl_moneda_EF_2">Real</span> <span id="sp_EF_pc_2">2160</span> <span id="sp_EF_pv_2">2240</span> <span id="sp_EF_fl_2"></span> 
nose como hacerlo ya que el id varia....
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #2 (permalink)  
Antiguo 25/03/2009, 11:56
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: extraer datos de HTML

No entiendo, si lo quieres hacer dinámicamente debería ser con Javascript, no con PHP. ¿O recibes ese código HTML con PHP? .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 25/03/2009, 12:10
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: extraer datos de HTML

Si lo haces luego de un evento, le envias a la función javascript que hará ese procedimiento, el id del span.
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #4 (permalink)  
Antiguo 25/03/2009, 12:19
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: extraer datos de HTML

el problema es que lo recibo con php.. extraigo el fuente de una pagina externa que no tiene rss pero que genera un html dinamico y quiero leer el fuente y convertirlo en xml...


hasta aqui llegue hasta ahora...
Código PHP:
<?php 
function extraevalor($chan){
$valorpri=explode('">'$chan);
$val=str_replace("</span>","",$valorpri[1]);
return 
$val;
}

// aca pones la direccion de la web
$url="http://www.maxicambios.com.py/print.php"
$url=htmlentities($url); 


// extrae el codigo fuente de pagina externa
$paginaweb file_get_contents($url);

$moneda=explode('<span id="lbl_moneda_EF_0">'$paginaweb);
$actual=$moneda[1];
$act=explode('Cotizaciones'$actual);
$act2=explode('Actualizado'$act[0]);
$cotizaciones='        <span id="lbl_moneda_EF_0">'.strip_tags($act2[0], '<span><img>');

//$cotizaciones=str_replace("span","item",$cotizaciones);


//echo $cotizaciones;

$cot=explode("        "$cotizaciones);

//print_r($cot);
foreach ($cot as $linea){
echo 
trim(extraevalor($linea)).",";
}


?>

una ves que tenga todo por separado voy a poner por cada elemento...

este es el formato final que deseo:
Código HTML:
<?xml version="1.0" encoding="iso-8859-1"?>
<items>
  <monedas>
      <imgpais>imagen pais</imgpais>
      <compra>int</compra>
      <venta>int</venta>
      <imgsubioobajo>imagen bajoosubio</imgsubioobajo>
  </monedas>
<items> 
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #5 (permalink)  
Antiguo 25/03/2009, 12:23
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: extraer datos de HTML

Puedes usar una expresión regular del tipo:
/<span id="([\w\d]+)">([^<]+)</span>/

Para capturar el id y los datos que tengas dentro de cualquier span.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 25/03/2009, 12:27
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: extraer datos de HTML

con que funcion utilizo esa expresion?
/<span id="([\w\d]+)">([^<]+)</span>/
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #7 (permalink)  
Antiguo 25/03/2009, 12:29
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: extraer datos de HTML

Puedes usar preg_match:
http://www.php.net/preg_match
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 25/03/2009, 12:40
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: extraer datos de HTML

acabo de probar con preg_match...


Código PHP:
<?php 
function extraevalor($chan){
$valorpri=explode('">'$chan);
$val=str_replace("</span>","",$valorpri[1]);
return 
$val;
}

// aca pones la direccion de la web
$url="http://www.maxicambios.com.py/print.php"
$url=htmlentities($url); 


// extrae el codigo fuente de pagina externa
$paginaweb file_get_contents($url);

$moneda=explode('<span id="lbl_moneda_EF_0">'$paginaweb);
$actual=$moneda[1];
$act=explode('Cotizaciones'$actual);
$act2=explode('Actualizado'$act[0]);
$cotizaciones='        <span id="lbl_moneda_EF_0">'.strip_tags($act2[0], '<span><img>');

//$cotizaciones=str_replace("span","item",$cotizaciones);


$asunto $cotizaciones;
$patron '/<span id="([\w\d]+)">([^<]+)</span>/';
preg_match($patron$asunto$coincidenciasPREG_OFFSET_CAPTURE3);
print_r($coincidencias);



//echo $cotizaciones;
/*
$cot=explode("        ", $cotizaciones);

//print_r($cot);
foreach ($cot as $linea){
echo trim(extraevalor($linea)).",";
}
*/

?>

y me tira este error:
Warning: preg_match() [function.preg-match]: Unknown modifier 'p' in C:\wamp\www\test\cotizacion.php on line 27
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #9 (permalink)  
Antiguo 25/03/2009, 12:43
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: extraer datos de HTML

Se me olvidó escapar la barra. Prueba así:
Código php:
Ver original
  1. $patron = '/<span id="([\w\d]+)">([^<]+)<\/span>/';
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 25/03/2009, 12:58
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: extraer datos de HTML

Código PHP:
<?php
 
/*
function extraevalor($chan){
$valorpri=explode('">', $chan);
$val=str_replace("</span>","",$valorpri[1]);
return $val;
}
*/

function extraevalor($val){
$asunto $val;
$patron '/<span id="([\w\d]+)">([^<]+)<\/span>/';
preg_match($patron$asunto$coincidenciasPREG_OFFSET_CAPTURE3);
//print_r($coincidencias);
return $coincidencias;
}

// aca pones la direccion de la web
$url="http://www.maxicambios.com.py/print.php"
$url=htmlentities($url); 


// extrae el codigo fuente de pagina externa
$paginaweb file_get_contents($url);

$moneda=explode('<span id="lbl_moneda_EF_0">'$paginaweb);
$actual=$moneda[1];
$act=explode('Cotizaciones'$actual);
$act2=explode('Actualizado'$act[0]);
$cotizaciones='        <span id="lbl_moneda_EF_0">'.strip_tags($act2[0], '<span><img>');

//$cotizaciones=str_replace("span","item",$cotizaciones);






//echo $cotizaciones;

$asunto $cotizaciones;
$patron '/<span id="([\w\d]+)">([^<]+)<\/span>/';
preg_match($patron$asunto$coincidenciasPREG_OFFSET_CAPTURE3);
echo 
$coincidencias[2][0];

/*
$cot=explode("        ", $cotizaciones);

//print_r($cot);
foreach ($cot as $linea){
echo extraevalor($linea);
}
*/

?>
no me extrae... solo extrae el valor de compra de la primera moneda y el resto nada... ni siquiera me extrae el nombre de la moneda....

proba ejecutar ese codigo de arriba y te vas a dar cuenta....

para ver el fuente html que obtengo ejecuta esto:
Código PHP:
<php
// aca pones la direccion de la web
$url="http://www.maxicambios.com.py/print.php"
$url=htmlentities($url); 


// extrae el codigo fuente de pagina externa
$paginaweb file_get_contents($url);

echo 
$paginaweb;
?> 

y ese codigo html quiero convertirlo en:
Código HTML:
<?xml version="1.0" encoding="iso-8859-1"?>
<items>
  <monedas>
      <imgpais>imagen pais</imgpais>
      <compra>int</compra>
      <venta>int</venta>
      <imgsubioobajo>imagen bajoosubio</imgsubioobajo>
  </monedas>
<items> 
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #11 (permalink)  
Antiguo 25/03/2009, 13:09
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: extraer datos de HTML

Usa preg_math_all para extraer todos los datos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 25/03/2009, 13:21
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: extraer datos de HTML

uff... ahora me salio un super array todo desordenado....

como se cual monto corresponde a cada moneda....

ahi si me perdi....


Código PHP:
<?php
 
/*
function extraevalor($chan){
$valorpri=explode('">', $chan);
$val=str_replace("</span>","",$valorpri[1]);
return $val;
}
*/

function extraevalor($val){
$asunto $val;
$patron '/<span id="([\w\d]+)">([^<]+)<\/span>/';
preg_match($patron$asunto$coincidenciasPREG_OFFSET_CAPTURE3);
//print_r($coincidencias);
return $coincidencias;
}

// aca pones la direccion de la web
$url="http://www.maxicambios.com.py/print.php"
$url=htmlentities($url); 


// extrae el codigo fuente de pagina externa
$paginaweb file_get_contents($url);

$moneda=explode('<span id="lbl_moneda_EF_0">'$paginaweb);
$actual=$moneda[1];
$act=explode('Cotizaciones'$actual);
$act2=explode('Actualizado'$act[0]);
$cotizaciones='        <span id="lbl_moneda_EF_0">'.strip_tags($act2[0], '<span><img>');

//$cotizaciones=str_replace("span","item",$cotizaciones);






//echo $cotizaciones;

$asunto $cotizaciones;
$patron '/<span id="([\w\d]+)">([^<]+)<\/span>/';
preg_match_all($patron$asunto$coincidenciasPREG_OFFSET_CAPTURE3);
//print_r($coincidencias[0][0]);
//echo "<br /><br /><br />";
print_r($coincidencias);

/*
$cot=explode("        ", $cotizaciones);

//print_r($cot);
foreach ($cot as $linea){
echo extraevalor($linea);
}
*/

?>

me salio esto:


Array ( [0] => Array ( [0] => Array ( [0] => 5070 [1] => 44 ) [1] => Array ( [0] => 5120 [1] => 80 ) [2] => Array ( [0] => Peso Argentino [1] => 343 ) [3] => Array ( [0] => 1350 [1] => 394 ) [4] => Array ( [0] => 1400 [1] => 430 ) [5] => Array ( [0] => Real [1] => 693 ) [6] => Array ( [0] => 2160 [1] => 734 ) [7] => Array ( [0] => 2240 [1] => 770 ) [8] => Array ( [0] => Peso Uruguayo [1] => 1027 ) [9] => Array ( [0] => 200 [1] => 1077 ) [10] => Array ( [0] => 250 [1] => 1112 ) [11] => Array ( [0] => Euro [1] => 1368 ) [12] => Array ( [0] => 6750 [1] => 1409 ) [13] => Array ( [0] => 6900 [1] => 1445 ) [14] => Array ( [0] => Libra Esterlina [1] => 1702 ) [15] => Array ( [0] => 7150 [1] => 1754 ) [16] => Array ( [0] => 7450 [1] => 1790 ) [17] => Array ( [0] => Yen [1] => 2047 ) [18] => Array ( [0] => 50 [1] => 2087 ) [19] => Array ( [0] => 53 [1] => 2121 ) [20] => Array ( [0] => Peso Chileno [1] => 2376 ) [21] => Array ( [0] => 7 [1] => 2425 ) [22] => Array ( [0] => 9 [1] => 2458 ) [23] => Array ( [0] => Corona Sueca [1] => 2712 ) [24] => Array ( [0] => 530 [1] => 2761 ) [25] => Array ( [0] => 580 [1] => 2796 ) [26] => Array ( [0] => Corona Danesa [1] => 3052 ) [27] => Array ( [0] => 800 [1] => 3102 ) [28] => Array ( [0] => 900 [1] => 3137 ) [29] => Array ( [0] => Dólar Canadiense [1] => 3393 ) [30] => Array ( [0] => 4000 [1] => 3447 ) [31] => Array ( [0] => 4200 [1] => 3484 ) [32] => Array ( [0] => Dólar Australiano [1] => 3743 ) [33] => Array ( [0] => 3200 [1] => 3798 ) [34] => Array ( [0] => 3500 [1] => 3835 ) [35] => Array ( [0] => Franco Suizo [1] => 4094 ) [36] => Array ( [0] => 4350 [1] => 4144 ) [37] => Array ( [0] => 4550 [1] => 4181 ) [38] => Array ( [0] => Dólar x Euro [1] => 4440 ) [39] => Array ( [0] => 1.32 [1] => 4490 ) [40] => Array ( [0] => 1.3550 [1] => 4527 ) [41] => Array ( [0] => Real x Dólar [1] => 4795 ) [42] => Array ( [0] => 2.28 [1] => 4845 ) [43] => Array ( [0] => 2.34 [1] => 4882 ) [44] => Array ( [0] => Peso x Dólar [1] => 5141 ) [45] => Array ( [0] => 3.65 [1] => 5191 ) [46] => Array ( [0] => 3.80 [1] => 5228 ) ) [1] => Array ( [0] => Array ( [0] => sp_EF_pc_0 [1] => 54 ) [1] => Array ( [0] => sp_EF_pv_0 [1] => 90 ) [2] => Array ( [0] => lbl_moneda_EF_1 [1] => 353 ) [3] => Array ( [0] => sp_EF_pc_1 [1] => 404 ) [4] => Array ( [0] => sp_EF_pv_1 [1] => 440 ) [5] => Array ( [0] => lbl_moneda_EF_2 [1] => 703 ) [6] => Array ( [0] => sp_EF_pc_2 [1] => 744 ) [7] => Array ( [0] => sp_EF_pv_2 [1] => 780 ) [8] => Array ( [0] => lbl_moneda_EF_3 [1] => 1037 ) [9] => Array ( [0] => sp_EF_pc_3 [1] => 1087 ) [10] => Array ( [0] => sp_EF_pv_3 [1] => 1122 ) [11] => Array ( [0] => lbl_moneda_EF_4 [1] => 1378 ) [12] => Array ( [0] => sp_EF_pc_4 [1] => 1419 ) [13] => Array ( [0] => sp_EF_pv_4 [1] => 1455 ) [14] => Array ( [0] => lbl_moneda_EF_5 [1] => 1712 ) [15] => Array ( [0] => sp_EF_pc_5 [1] => 1764 ) [16] => Array ( [0] => sp_EF_pv_5 [1] => 1800 ) [17] => Array ( [0] => lbl_moneda_EF_6 [1] => 2057 ) [18] => Array ( [0] => sp_EF_pc_6 [1] => 2097 ) [19] => Array ( [0] => sp_EF_pv_6 [1] => 2131 ) [20] => Array ( [0] => lbl_moneda_EF_7 [1] => 2386 ) [21] => Array ( [0] => sp_EF_pc_7 [1] => 2435 ) [22] => Array ( [0] => sp_EF_pv_7 [1] => 2468 ) [23] => Array ( [0] => lbl_moneda_EF_8 [1] => 2722 ) [24] => Array ( [0] => sp_EF_pc_8 [1] => 2771 ) [25] => Array ( [0] => sp_EF_pv_8 [1] => 2806 ) [26] => Array ( [0] => lbl_moneda_EF_9 [1] => 3062 ) [27] => Array ( [0] => sp_EF_pc_9 [1] => 3112 ) [28] => Array ( [0] => sp_EF_pv_9 [1] => 3147 ) [29] => Array ( [0] => lbl_moneda_EF_10 [1] => 3403 ) [30] => Array ( [0] => sp_EF_pc_10 [1] => 3457 ) [31] => Array ( [0] => sp_EF_pv_10 [1] => 3494 ) [32] => Array ( [0] => lbl_moneda_EF_11 [1] => 3753 ) [33] => Array ( [0] => sp_EF_pc_11 [1] => 3808 ) [34] => Array ( [0] => sp_EF_pv_11 [1] => 3845 ) [35] => Array ( [0] => lbl_moneda_EF_12 [1] => 4104 ) [36] => Array ( [0] => sp_EF_pc_12 [1] => 4154 ) [37] => Array ( [0] => sp_EF_pv_12 [1] => 4191 ) [38] => Array ( [0] => lbl_moneda_EF_13 [1] => 4450 ) [39] => Array ( [0] => sp_EF_pc_13 [1] => 4500 ) [40] => Array ( [0] => sp_EF_pv_13 [1] => 4537 ) [41] => Array ( [0] => lbl_moneda_EF_14 [1] => 4805 ) [42] => Array ( [0] => sp_EF_pc_14 [1] => 4855 ) [43] => Array ( [0] => sp_EF_pv_14 [1] => 4892 ) [44] => Array ( [0] => lbl_moneda_EF_15 [1] => 5151 ) [45] => Array ( [0] => sp_EF_pc_15 [1] => 5201 ) [46] => Array ( [0] => sp_EF_pv_15 [1] => 5238 ) ) [2] => Array ( [0] => Array ( [0] => 5070 [1] => 66 ) [1] => Array ( [0] => 5120 [1] => 102 ) [2] => Array ( [0] => Peso Argentino [1] => 370 ) [3] => Array ( [0] => 1350 [1] => 416 ) [4] => Array ( [0] => 1400 [1] => 452 ) [5] => Array ( [0] => Real [1] => 720 ) [6] => Array ( [0] => 2160 [1] => 756 ) [7] => Array ( [0] => 2240 [1] => 792 ) [8] => Array ( [0] => Peso Uruguayo [1] => 1054 ) [9] => Array ( [0] => 200 [1] => 1099 ) [10] => Array ( [0] => 250 [1] => 1134 ) [11] => Array ( [0] => Euro [1] => 1395 ) [12] => Array ( [0] => 6750 [1] => 1431 ) [13] => Array ( [0] => 6900 [1] => 1467 ) [14] => Array ( [0] => Libra Esterlina [1] => 1729 ) [15] => Array ( [0] => 7150 [1] => 1776 ) [16] => Array ( [0] => 7450 [1] => 1812 ) [17] => Array ( [0] => Yen [1] => 2074 ) [18] => Array ( [0] => 50 [1] => 2109 ) [19] => Array ( [0] => 53 [1] => 2143 ) [20] => Array ( [0] => Peso Chileno [1] => 2403 ) [21] => Array ( [0] => 7 [1] => 2447 ) [22] => Array ( [0] => 9 [1] => 2480 ) [23] => Array ( [0] => Corona Sueca [1] => 2739 ) [24] => Array ( [0] => 530 [1] => 2783 ) [25] => Array ( [0] => 580 [1] => 2818 ) [26] => Array ( [0] => Corona Danesa [1] => 3079 ) [27] => Array ( [0] => 800 [1] => 3124 ) [28] => Array ( [0] => 900 [1] => 3159 ) [29] => Array ( [0] => Dólar Canadiense [1] => 3421 ) [30] => Array ( [0] => 4000 [1] => 3470 ) [31] => Array ( [0] => 4200 [1] => 3507 ) [32] => Array ( [0] => Dólar Australiano [1] => 3771 ) [33] => Array ( [0] => 3200 [1] => 3821 ) [34] => Array ( [0] => 3500 [1] => 3858 ) [35] => Array ( [0] => Franco Suizo [1] => 4122 ) [36] => Array ( [0] => 4350 [1] => 4167 ) [37] => Array ( [0] => 4550 [1] => 4204 ) [38] => Array ( [0] => Dólar x Euro [1] => 4468 ) [39] => Array ( [0] => 1.32 [1] => 4513 ) [40] => Array ( [0] => 1.3550 [1] => 4550 ) [41] => Array ( [0] => Real x Dólar [1] => 4823 ) [42] => Array ( [0] => 2.28 [1] => 4868 ) [43] => Array ( [0] => 2.34 [1] => 4905 ) [44] => Array ( [0] => Peso x Dólar [1] => 5169 ) [45] => Array ( [0] => 3.65 [1] => 5214 ) [46] => Array ( [0] => 3.80 [1] => 5251 ) ) )
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #13 (permalink)  
Antiguo 25/03/2009, 13:41
 
Fecha de Ingreso: marzo-2009
Mensajes: 30
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: extraer datos de HTML

Prueba asi:

Código PHP:
<?php
$a 
file("Pon Aqui El Link Porque El foro No me deja el de ...ambios.com.py/print.php");
foreach(
$a as $x){
$todo.=$x;
}
$inicio strpos($todo,"Cotizaciones - Efectivo")+23;
$fin strpos($todo,"Cotizaciones - Cheques y Transferencias");
$temp substr($todo,$inicio,$fin-$inicio);
$final strip_tags($temp);
$final2 str_replace("\n","",$final);
$final2 str_replace("\t","+",$final2);
$final2 str_replace("++++++++","+",$final2);
$final2 str_replace("++","-",$final2);
$final2 str_replace("+","<br>",$final2);
$final2substr($final2,0,strlen($final2)-1);
echo 
"".$final2."";
?>
Solo busca el principio a cortar y el final, haces la insicion, luego quitas los caracteres que estorban y obtienes unas ileras asi:

Código:
Dólar-5070-5120
Peso Argentino-1350-1400
Real-2160-2230
Peso Uruguayo-200-250
Euro-6750-6900
Libra Esterlina-7150-7450
Yen-50-53
Peso Chileno-7-9
Corona Sueca-530-580
Corona Danesa-800-900
Dólar Canadiense-4000-4200
Dólar Australiano-3200-3500
Franco Suizo-4350-4550
Dólar x Euro-1.33-1.36
Real x Dólar-2.28-2.34
Peso x Dólar-3.65-3.80
Ya solo los metes en un array con explode y los muestra como quieras ya con el array.

PD: es una ejemplo que tome la primera fila, lo puedes implementar en donde quieras solo asegurate de cambiar los caracteres que yo borre arriba, si son diferentes cambialos logico.

Saludos
  #14 (permalink)  
Antiguo 25/03/2009, 14:02
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: extraer datos de HTML

Lo estas haciendo a mano pero por si te interesa te comento que hay servicios que convierten el html en xml como por ejemplo OpenKapow

Saludos
  #15 (permalink)  
Antiguo 25/03/2009, 14:16
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: extraer datos de HTML

Gracias 3du4rd0 y David el Grande por su ayuda...

al final use el codigo de 3du4rd0 hace justo lo que quiero...


asi quedo:
Código PHP:
<?php echo  "<"?><?php echo "?"?>xml version="1.0" encoding="iso-8859-1"?>
<items>
<?php
$a 
file("http://www.maxicambios.com.py/print.php");
foreach(
$a as $x){
$todo.=$x;
}
$inicio strpos($todo,"Cotizaciones - Efectivo")+23;
$fin strpos($todo,"Cotizaciones - Cheques y Transferencias");
$temp substr($todo,$inicio,$fin-$inicio);
$final strip_tags($temp);
$final2 str_replace("\n","",$final);
$final2 str_replace("\t","+",$final2);
$final2 str_replace("++++++++","+",$final2);
$final2 str_replace("++","-",$final2);
$final2 str_replace("+","<br>",$final2);
$final2substr($final2,0,strlen($final2)-1);
//echo "".$final2."";
$lineas=explode("<br>"$final2);

$i="0";
foreach(
$lineas as $linea){
    if(
$i 0){
        
$line=explode("-",$linea);
        echo 
"    <cotizacion>";
        echo 
"
        <moneda>"
.$line[0]."</moneda>";
        echo 
"
        <compra>"
.$line[1]."</compra>";
        echo 
"
        <venta>"
.$line[2]."</venta>";
        echo 
"
    </cotizacion>
"
;
    }
    
$i="1";
}
?>
</items>
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
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:25.