forked from arielcr/indicadores-bccr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Indicador.php
75 lines (58 loc) · 2.38 KB
/
Indicador.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
/*
* Descripcion: Clase para obtener el tipo de cambio actual en Dolares del Banco Central de Costa Rica.
* Autor: Ariel Orozco <bassplayer85@gmail.com>
* Web: http://arielorozco.com/
* Fecha: 29/12/2010
*/
class Indicador {
// Constantes de tipo de cambio
const COMPRA = 317;
const VENTA = 318;
// URL del WebService
private $ind_econom_ws = "http://indicadoreseconomicos.bccr.fi.cr/indicadoreseconomicos/WebServices/wsIndicadoresEconomicos.asmx";
// Funcion que se va a utilizar del WebService
private $ind_econom_func = "ObtenerIndicadoresEconomicosXML";
// Bandera que indica si se va a utilizar SOAP para obtener los datos (falso por defecto)
private $soap = false;
// Tipo de cambio que se quiere obtener (COMPRA por defecto)
private $tipo = COMPRA;
// Fecha actual
private $fecha = "";
function __construct($soap = false) {
$this->soap = $soap;
$this->fecha = date("d/m/Y");
}
public function obtenerIndicadorEconomico($tipo) {
$this->tipo = $tipo;
$valor = ($this->soap) ? $this->obtenerPorSoap() : $this->obtenerPorGet();
return $valor;
}
private function obtenerPorGet() {
$urlWS = $this->ind_econom_ws."/".$this->ind_econom_func."?tcIndicador=".$this->tipo."&tcFechaInicio=".$this->fecha."&tcFechaFinal=".$this->fecha."&tcNombre=tq&tnSubNiveles=N";
$tipoCambio = "";
if (file_get_contents($urlWS)!=false) {
$indWS = file_get_contents($urlWS);
$xml = simplexml_load_string($indWS);
$tipo_cambio = trim(strip_tags(substr($xml,strpos($xml,"<NUM_VALOR>"),strripos($xml,"</NUM_VALOR>"))));
$tipoCambio = number_format($tipo_cambio,2);
}
return $tipoCambio;
}
private function obtenerPorSoap() {
require_once("soap/nusoap.php");
$tipoCambio = "";
$parametros = array(
"tcIndicador"=>$this->tipo,
"tcFechaInicio"=>$this->fecha,
"tcFechaFinal"=>$this->fecha,
"tcNombre"=>"TQ",
"tnSubNiveles"=>"N");
$oSoapClient = new nusoap_client("http://indicadoreseconomicos.bccr.fi.cr/indicadoreseconomicos/WebServices/wsIndicadoresEconomicos.asmx?WSDL",true);
$aRespuesta = $oSoapClient->call($this->ind_econom_func, $parametros);
$xml = simplexml_load_string($aRespuesta['ObtenerIndicadoresEconomicosXMLResult']);
$tipoCambio = $xml->INGC011_CAT_INDICADORECONOMIC[0]->NUM_VALOR;
return $tipoCambio;
}
}
?>