Foros de CHW > Software > Webmasters
Recuperar Clave
Registrarse FAQ/Ayuda Posts de hoy Tags


Estás leyendo el thread Extraer UF con php, solucion definitiva  en el foro Webmasters, que dice: "Bueno, muchas veces aqui mismo se ha discutido el problema, ahora propongo una solucion que "

 




Tags: Ninguna

Responder   Iniciar discusión  
 
LinkBack (5) Herramientas
Antiguo 29-nov-2009, 14:51
tokugawa
Gordo en rehabilitación
 
tokugawa
 
Registrado: septiembre-2006
Ubicación: -37.459999,-72.36
Posts: 7.467
tokugawa goza de buena reputación


 
Extraer UF con php, solucion definitiva

Bueno, muchas veces aqui mismo se ha discutido el problema, ahora propongo una solucion que creo es optima y facil de comprender, les dejo el codigo en el spoiler y luego les explico como funciona todo.



Bien, ahora en lugar de conectarme a la pagina del banco central, me conecto a la pagina del banco estado, pero porque hago eso?

Simple el precio del dolar no se calcula en feriados ni en fines de semana, para esos casos se debe mostrar el valor para el ultimo dia habil, en general el que vale es el precio del dia anterior, por lo cual el valr del dolar nunca aparece en el campo que corresponde cuando extraemos los datos en el banco central.

Si lo extraemos del banco estado, todas esas validaciones ya se han hecho antes de gneerar la tabla con los valores, asi que nos evitamos unas cuantas lineas de codigo.


La clave de todo esto esta en el uso de strstr

que busca un texto, y te entrega todo lo que encuentre desde el texto buscado en adelante, luego con el split hacemos el resto ede magia y con striptags eliminamos el codeigo html, y con el str replace terminamos de limpiar las cadenas

En fin espero que estas 49 lineas de codigo les sean utiles
----
PD: hay un poco de codigo basura que pueden sacar, es que lo escribi a la rapida a partir de otro ejempolo que tenia a mano

Editado por tokugawa en 29-nov-2009 a las 14:51. Razón: Post unidos
tokugawa is online now   Citar y responder
Recuerda que no verás este banner una vez que te registres

Antiguo 30-nov-2009, 08:35
unreal4u
Zend Certified Engineer
ex-admin :)

 
unreal4u
 
Registrado: octubre-2005
Ubicación: Eindhoven, The Netherlands
Posts: 12.229
unreal4u goza de buena reputación


Re: Extraer UF con php, solucion definitiva

mmm .. que interesante... mezclando esto con cURL, JSON, un poco de caché y PHP demás se podría crear un webservice

Después del 15 de dic. tengo tiempo, en una de esas hago un webservice y asunto solucionado para todos

Saludos !!
unreal4u está fuera de línea   Citar y responder
Antiguo 30-nov-2009, 11:21
tokugawa
Gordo en rehabilitación
 
tokugawa
 
Registrado: septiembre-2006
Ubicación: -37.459999,-72.36
Posts: 7.467
tokugawa goza de buena reputación


 
Re: Extraer UF con php, solucion definitiva

yeaaa

Creo que google tiene una api para eso, pero como me dio paja buscar y entre leer el ma nual de la api, mejor escribi el codigo.

Se piuede optimizar para que consulte solo uan vez por dia y guarde el dato en una base de datos, porque tampoco se trata de saturarles la coneccion a los del banco
----
tambien hice un plugin para wordpress, ya que en la empresa me encargaron hacer algo para un portal que levante con ese CMSasi que lo modificare un poquito y lo publicare
----
aqui dejo el enlace al plugin de wordpress por si alguien le interesa, eso si todavia no esta disponible para descarga porque falta que en wordpress.org lo aprueben

Wordpress: Plugin Indicadores Economicos

Editado por tokugawa en 30-nov-2009 a las 11:21. Razón: Post unidos
tokugawa is online now   Citar y responder
Antiguo 30-nov-2009, 11:32
drakvl
Fucking Devil
 
drakvl
 
Registrado: mayo-2006
Posts: 64
drakvl no tiene una reputación buena ni mala


 
Re: Extraer UF con php, solucion definitiva

Excelente codigo wn, lo utilizare algun dia, funca perfect.
drakvl está fuera de línea   Citar y responder
Antiguo 30-nov-2009, 14:14
Alejandroneomatrix
Usuario
 
Alejandroneomatrix
 
Registrado: mayo-2006
Posts: 308
Alejandroneomatrix no tiene una reputación buena ni mala


 
Re: Extraer UF con php, solucion definitiva

Quote:
Originalmente publicado por unreal4u Ver post
mmm .. que interesante... mezclando esto con cURL, JSON, un poco de caché y PHP demás se podría crear un webservice

Después del 15 de dic. tengo tiempo, en una de esas hago un webservice y asunto solucionado para todos

Saludos !!
no entiendo mucho de web, pero webservice(servicio web), lo que indica tokugawa es como un plugin?, el webservice seria algo mas elaborado?

sorry si no comprendo las ideas
Alejandroneomatrix está fuera de línea   Citar y responder
Antiguo 30-nov-2009, 19:17
tokugawa
Gordo en rehabilitación
 
tokugawa
 
Registrado: septiembre-2006
Ubicación: -37.459999,-72.36
Posts: 7.467
tokugawa goza de buena reputación


 
Re: Extraer UF con php, solucion definitiva

Lo que yo hice primero, fue solo un simple script en php para ser utilizando en cualquier aplicacion php que escribas, y como sol o es codigo php se puede meter en cualquier CMS que este escrito en ese lenguaje.

Luego hice un plugin para wordpress que contiene el mismo codigo que publique mas arriba, pero con unas modificaciones para que en wordpress apareciera como widget

Un webservice esta definido por un protocolo que define como se le debe pedir informacion a un documento web(.php, asp, etc) y ademas define en que formato retornara la informacion.

Cuando le pidues informacion a un webservice este retorna datos en formato XML, hay un estandar definido para como se debe devolver la informacion.

La difenrencia entre le webservice y el script php es que este webservice tendra resuelta toda la logica para entregar los datos de la uf, de este modo si un dia en el banco estado cambian el archvio, lo eliminan, etc, bastara con modificar el webservice para que a todo el mundo nuevamente le aparesca en su pagina web los indicadores economicos, sin que nadie excepto el programador del webservice haga las modificaciones correspondientes.
----
Ya, el plugin para wordpress esta publicado !!!

a gozar a gozar ajajajaj

bajenlo desde aca
WordPress › WP Indicadores Economicos WordPress Plugins

Editado por tokugawa en 30-nov-2009 a las 19:17. Razón: Post unidos
tokugawa is online now   Citar y responder
Antiguo 02-dic-2009, 01:20
Alejandroneomatrix
Usuario
 
Alejandroneomatrix
 
Registrado: mayo-2006
Posts: 308
Alejandroneomatrix no tiene una reputación buena ni mala


 
Re: Extraer UF con php, solucion definitiva

aah gracias tokugawa por la aclaración
Alejandroneomatrix está fuera de línea   Citar y responder
Antiguo 11-mar-2010, 07:14
DEONNE
Pajarito Nuevo
 
DEONNE
 
Registrado: marzo-2010
Posts: 1
DEONNE no tiene una reputación buena ni mala


 
Re: Extraer UF con php, solucion definitiva

Simple el precio del dolar no se calcula en feriados ni en fines de semana, para esos casos se debe mostrar el valor para el ultimo dia habil, en general el que vale es el precio del dia anterior, por lo cual el valr del dolar nunca aparece en el campo que corresponde cuando extraemos los datos en el banco central.

Si lo extraemos del banco estado, todas esas validaciones ya se han hecho antes de gneerar la tabla con los valores, asi que nos evitamos unas cuantas lineas de codigo.
DEONNE está fuera de línea   Citar y responder
Antiguo 11-mar-2010, 07:37
tokugawa
Gordo en rehabilitación
 
tokugawa
 
Registrado: septiembre-2006
Ubicación: -37.459999,-72.36
Posts: 7.467
tokugawa goza de buena reputación


 
Re: Extraer UF con php, solucion definitiva

Quote:
Originalmente publicado por DEONNE Ver post
Simple el precio del dolar no se calcula en feriados ni en fines de semana, para esos casos se debe mostrar el valor para el ultimo dia habil, en general el que vale es el precio del dia anterior, por lo cual el valr del dolar nunca aparece en el campo que corresponde cuando extraemos los datos en el banco central.

Si lo extraemos del banco estado, todas esas validaciones ya se han hecho antes de gneerar la tabla con los valores, asi que nos evitamos unas cuantas lineas de codigo.
gracias, da gusto que alguien tenga su primer post aportando algo util
tokugawa is online now   Citar y responder
Antiguo 17-mar-2010, 15:11
Evilman
-EVIL(v)@N-
 
Evilman
 
Registrado: febrero-2010
Ubicación: Sureño
Posts: 43
Evilman no tiene una reputación buena ni mala


 
Re: Extraer UF con php, solucion definitiva

ta de lujo el codigo jajaj como a todos nos gusta copy paste y un poco de edicion...funca a la perfeccion..


aportazo jeje gracias


pd: esperaremos mas codigos....jijij
Evilman está fuera de línea   Citar y responder
Antiguo 19-mar-2010, 16:25
Vip3R™
From Conce with love
 
Vip3R™
 
Registrado: junio-2009
Ubicación: Concepción
Posts: 399
Vip3R™ no tiene una reputación buena ni mala

Mi Feedback?


Re: Extraer UF con php, solucion definitiva

aportazo y muy practico
muchas gracias
Vip3R™ está fuera de línea   Citar y responder
Antiguo 21-mar-2010, 15:39
luchex
I r srs
 
luchex
 
Registrado: julio-2007
Ubicación: Concepcion
Posts: 664
luchex no tiene una reputación buena ni mala


 
Re: Extraer UF con php, solucion definitiva

buen dato!

yo los saco de un js

Código PHP:
<script src="http://www.bci.cl/common/include/valores.js"></script>                        

UF   <script>
                if(typeof(arrValores) != "undefined")
                if(typeof(arrValores[4])=="object")
                document.write(formatear_numero(arrValores[4].valor2));
                </script>
        
            Dolar <script>
                if(typeof(arrValores) != "undefined")
                if(typeof(arrValores[55])=="object")
                document.write(formatear_numero(arrValores[55].valor2));
                </script>
                
            UTM  <script> 
                if(typeof(arrValores) != "undefined")
                if(typeof(arrValores[5])=="object")
                document.write(formatear_numero(arrValores[5].valor2));
                </script> 
bueno ahi ya saben, van cambiando el array

arrValores[55]

por el valor que quieran sacar no mas
luchex está fuera de línea   Citar y responder
Antiguo 21-mar-2010, 20:11
n@c
Pajarito Nuevo
 
n@c
 
Registrado: agosto-2009
Ubicación: Ciudad 4 veces centenario
Posts: 133
n@c no tiene una reputación buena ni mala


  Enviar un mensaje por MSN a n@c
Re: Extraer UF con php, solucion definitiva

Muy buen aporte, se agradece un monton

funca perfect
n@c está fuera de línea   Citar y responder
Antiguo 10-abr-2010, 06:48
Dennis Lambart
Pajarito Nuevo
 
Dennis Lambart
 
Registrado: abril-2010
Posts: 1
Dennis Lambart no tiene una reputación buena ni mala


 
Re: Extraer UF con php, solucion definitiva

Estás leyendo el thread Extraer UF con php, solucion definitiva en el foro Webmasters, que dice: "Bueno, muchas veces aqui mismo se ha discutido el problema, ahora propongo una solucion que "
Dennis Lambart está fuera de línea   Citar y responder
Antiguo 10-abr-2010, 13:15
unreal4u
Zend Certified Engineer
ex-admin :)

 
unreal4u
 
Registrado: octubre-2005
Ubicación: Eindhoven, The Netherlands
Posts: 12.229
unreal4u goza de buena reputación


Re: Extraer UF con php, solucion definitiva

Quote:
Originalmente publicado por Dennis Lambart Ver post
Estás leyendo el thread Extraer UF con php, solucion definitiva en el foro Webmasters, que dice: "Bueno, muchas veces aqui mismo se ha discutido el problema, ahora propongo una solucion que "


....
unreal4u está fuera de línea   Citar y responder
Antiguo 10-abr-2010, 13:24
chubi
Interactive Developer
 
chubi
 
Registrado: septiembre-2006
Ubicación: Santiago.
Posts: 1.199
chubi no tiene una reputación buena ni mala


  Enviar un mensaje por MSN a chubi
Re: Extraer UF con php, solucion definitiva

Quote:
Originalmente publicado por unreal4u Ver post


....
Se registro para decir que quizás el amigo esta copy paste *
chubi está fuera de línea   Citar y responder
Antiguo 10-abr-2010, 13:38
tokugawa
Gordo en rehabilitación
 
tokugawa
 
Registrado: septiembre-2006
Ubicación: -37.459999,-72.36
Posts: 7.467
tokugawa goza de buena reputación


 
Re: Extraer UF con php, solucion definitiva

Quote:
Originalmente publicado por chubi Ver post
Se registro para decir que quizás el amigo esta copy paste *
queiria aplicar efecto "trackback" de blog jajajaj
tokugawa is online now   Citar y responder
Antiguo 10-abr-2010, 15:04
chubi
Interactive Developer
 
chubi
 
Registrado: septiembre-2006
Ubicación: Santiago.
Posts: 1.199
chubi no tiene una reputación buena ni mala


  Enviar un mensaje por MSN a chubi
Re: Extraer UF con php, solucion definitiva

Quote:
Originalmente publicado por tokugawa Ver post
queiria aplicar efecto "trackback" de blog jajajaj
Haha, La dura.

El code me sirvió *

Thanks.
chubi está fuera de línea   Citar y responder
Antiguo 04-may-2010, 18:56
tokugawa
Gordo en rehabilitación
 
tokugawa
 
Registrado: septiembre-2006
Ubicación: -37.459999,-72.36
Posts: 7.467
tokugawa goza de buena reputación


 
Re: Extraer UF con php, solucion definitiva

Por si les interesa estoy haciendo una leve mejora, pues al incorporar el script a una pagina andaba muy lento, asi que al menos el plugin para wordpress que programe hace un tiempo atras lo estoy cambiando para que guarde los valores en una base de datos, y solo en el caso de no encontrar valores almacenados haga la consulta al banco central, eso acelera de forma increible la carga de las paginas.
tokugawa is online now   Citar y responder
Antiguo 28-jul-2010, 20:00
unreal4u
Zend Certified Engineer
ex-admin :)

 
unreal4u
 
Registrado: octubre-2005
Ubicación: Eindhoven, The Netherlands
Posts: 12.229
unreal4u goza de buena reputación


Re: Extraer UF con php, solucion definitiva

dije que tenía tiempo para después del 15 de diciembre, así que aquí está mi solución propuesta:

Código PHP:
function filter_floats($in '',$sep ',') {
  
$out FALSE;
  if (!empty(
$in)) {
    
$output preg_split('/([^0-9]+[^'.$sep.']{1}+[^0-9])/',$in,-1,PREG_SPLIT_NO_EMPTY);
    if (
count($output) > 0) {
      foreach(
$output AS $a) if (strpos($a,$sep) !== FALSE$out[] = $a
      unset(
$output,$a);
    }   
  }
  return 
$out;

Modo de uso:
Código PHP:
$contenido file_get_contents('http://www.bancoestado.cl/bancoestado/indiceseconomicos/indicadores.asp');
// Opcional: Sacar los datos desde el banco central:
//$contenido = file_get_contents('http://si2.bcentral.cl/Basededatoseconomicos/951_480.asp');

echo '<pre>';
print_r(filter_floats($contenido));

// Si el punto decimal fuera formato gringo (AKA con un punto en vez de una coma):
print_r(filter_floats('400.2333','.'));
echo 
'</pre>'
Si se fijan, mi solución va por otro lado nada que ver con el de tokugawa... En vez de buscar una cadena en particular, simplemente saco todos los caracteres que no sean numéricos y particularmente los números que tienen una coma (o un punto decimal, dependiendo de cómo el banco interpreta la coma) entremedio.

Luego de tener todos los números de la página, simplemente busco por aquellos valores que tengan una coma: aunque la UF corresponda a $22345 , el banco siempre escribirá 22345,00.

El resultado será un arreglo con todos los dígitos tipo float en el orden en que aparecen en la página. Se revisa la página y se compara qué valor viene primero. Así por ejemplo, el banco central devuelve:

Indicadores del da - Base de Datos Estadsticos
Code:
Array
(
    [0] => 21227,57 // UF
    [1] => 22013,94 // IVP
    [2] => 519,19 // Dolar obs.
    [3] => 653,50 // Dolar acuerdo
    [4] => 672,97 // Canasta preferencial
    [5] => 87,900000 // Yen
)
BancoEstado:
http://www.bancoestado.cl/bancoestad...ndicadores.asp
Code:
Array
(
    [0] => 21.227,57 // UF
    [1] => 37.231,00 // UTM
    [2] => 22.013,94 // IVP
    [3] => 519,19 // Dolar obs.
    [4] => 532,00 // Dolar vendedor BancoEstado
    [5] => 512,00 // Dolar comprador BancoEstado
)
Tiene una sola pifia que hasta el momento no he podido solucionar: aquellos valores que estén por debajo de 1, por ejemplo: 0,0004. Más adelante voi a arreglar esto.

Saludos !! (up )
unreal4u está fuera de línea   Citar y responder

  Foros de CHW > Software > Webmasters
Responder

Herramientas

Reglas del Foro
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is activado
Emotíconos está activado
El código [IMG] está activado
El código HTML está desactivado
Trackbacks are activado
Pingbacks are activado
Refbacks are activado

Ir a



Estilo del foro: Todas las horas son GMT -3. La hora es 18:37.

Contacto Foro - Privacidad - FAQ - Reglamento Convivencia - Reglamento Compraventa - Ir arriba