Webly: Função Para Pegar Cotação De Moedas - Webly

Ir para

Regras para postagem

É permitido postar livremente respostas com comentários, testes e avaliações dos scripts. Postagens contendo dúvidas sobre o script, deverão ser postadas no fórum principal de PHP

IMPORTANTE: Todos os tutoriais postados neste fórum irão automaticamente para o portal Webly. Contribua você também e faça parte da equipe de colaboradores que fazem a evolução da web. Obrigado.


Página 1 de 1

Função Para Pegar Cotação De Moedas pega valores das moedas do Yahoo Finances e coloca no seu site Avaliar tópico: -----

#1 Membro offline   fredmosc Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 19
  • Cadastrado: 30-janeiro 09

Postou 30 janeiro 2009 - 10:18

Olá pessoal,

desenvolvi uma função simples para pegar a cotação de moedas do Yahoo Finances.
A função pega o arquivo CSV de determinada moeda.
Útil para colocar a cotação atualizada em sites.
Se tiverem sugestões para melhorar a função, fiquem a vontade.
segue o código:

<?

/********************************************************************************
*****/
/* Funcao para pegar cotacao no Yahoo Finances										*/
/* Criada por: Frederick Moschkowich - www.fm-consultoria.com.br					  */
/* fm.consultoria@gmail.com															 */
/* Em: 09 de dezembro de 2008														 */
/*																					*/
/* Exemplo de uso																	  */
/* $dtMoeda = pega_cota('JPY'); // Pega o array com os valores da moeda				   */
/* desejada. EUR -> Euro; USD -> Dolar Americano; GBP -> Libra Esterlina;			 */ 
/* JPY -> Yen																		 */
/*																					  */
/* echo "Cotação do dia ". $dtMoeda['data']." as ".$dtMoeda['hora']."<br>";				 */
/* // Escreve os valores achados													 */
/* echo "Cotacao: ".$dtMoeda['cotacao']."<br>";										 */
/* echo "Bid: ".$dtMoeda['bid']."<br>";												 */
/* echo "Ask: ".$dtMoeda['ask']."<br>";												 */
/*																					  */
/* echo '<em>&copy;<a href="http://finance.yahoo.com/currency">Yahoo Finances</a>';  */
/* // Copyright do Yahoo Finances													 */
/********************************************************************************
*****/

function pega_cota($moeda) { // Inicia a funcao para pegar a cotacao de determinada moeda ($moeda)

	$link = "http://download.finance.yahoo.com/d/quotes.csv?s=".$moeda."BRL=X&f=sl1d1t1ba&e=.csv"; //link para pegar a cotacao no formato CSv
	
	if (@fopen($link,"r")) { // abre o arquivo CSV
	  $arq = file($link);
	}
   
		if (is_array($arq)) { // Se o arquivo retornar um array continua
	
		   for ($x=0;$x<count($arq);$x++) { // Passa por todas as chaves do array
		   
			  $linha = explode(",",$arq[$x]); // Separa os valores do arquivo CSV
			  
			  $result['cotacao']  = $linha[1]; // Pega o valor que o Yahoo usa para fazer a conversao
			  $result['data'] = ereg_replace('"','',$linha[2]); // Retira as aspas da data
			  $result['data'] = date('F d Y',strtotime($result['data']));
			 /* if (strlen($result['data']) == 9){ // Se o tamanho do campo data for igual a 9, p.ex: 12/9/2008 (9 Dez)
				  $result['data'] = substr($result['data'],3,1)."/".substr($result['data'],0,2)."/".substr($result['data'],5,4); // Coloca a data no formato brasileiro
			  } else { // ou se o formato for 12/10/2008 (10 dez)
				  $result['data'] = substr($result['data'],3,2)."/".substr($result['data'],0,2)."/".substr($result['data'],6,4); 
			  }*/
			  $result['hora'] = ereg_replace('"','',$linha[3]); // Retira as aspas do horario da cotacao
			  $result['bid']  = $linha[4]; // Pega o valor de compra da moeda
			  $result['ask']  = $linha[5]; // Pega o valor de venda da moeda
			 
		   }
		}
	
		else{ // Se o arquivo nao retornar nenhum array
		
			$result['cotacao'] = "N/A"; // Define not avaiable para os campos
			$result['data'] = "N/A";
			$result['hora'] = "N/A";
			$result['bid']  = "N/A";
			$result['ask']  = "N/A";
		}
	
	
return $result; // retorna o array com os valores a serem usados

}

?>


abs,

FM
0

#2 Membro offline   KeyMaster Ícone

  • Ícone
  • Grupo: Membro Amigo
  • Posts: 185
  • Cadastrado: 18-outubro 08
  • Localização:Pedro Osório, RS
  • Interesses:Administração, Webdesign, Programação, Marketing, música. Esqueci de citar Administração

Postou 30 janeiro 2009 - 10:37

Não testei, mas parabéns pelo código. Será útil a muitas pessoas.
Lula, Lula, beijomeliga

http://www.eualexandre.com.br
0

#3 Membro offline   fredmosc Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 19
  • Cadastrado: 30-janeiro 09

Postou 30 janeiro 2009 - 04:56

Esta funcionando direitinho.
qq coisa da uma olhada em: www.phoenixbrazil.com/destinations/

abs

FM
0

#4 Membro offline   Lucasbr Ícone

  • O.o
  • Ícone
  • Grupo: Administradores
  • Posts: 2441
  • Cadastrado: 03-julho 06
  • Localização:SBC - SP
  • Interesses:Meus interesses

Postou 31 janeiro 2009 - 06:42

cara, vou te falar uma coisa.. fiquei me quebrando pra fazer esse esquema esses dias.. os codigos q eu tinha ja nao funcionavam mais e tal, e deu uma baita dor de cabeça pra descobrir algo bacana... bom, de tanto procurar eu encontrei um outro .csv q me ajudou pacas... segue o link.

http://www.investsho...cado/DOLAR_.csv

bom, pra eu usar isso, eu so peguei os dados q vieram desta planilha e usei um split no asp ( ou explode no php) usado o ";" como delimitador e ja era!

Bom, fica mais uma forma como referencia pra galera!

Obrigado pela contribuição!
Lucas Cavallari

Dúvidas? No fórum... nada de MP nem MSN...!
Se a resposta te ajudou, retorne ao topico e diga, pois facilitará para outros usuarios...
0

#5 Membro offline   fredmosc Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 19
  • Cadastrado: 30-janeiro 09

Postou 02 fevereiro 2009 - 09:42

É Lucasbr,

eu usava um que pegava no Banco Central, mas os caras mudaram o link e todo dia gera um id novo para o link... ficou inviável.
Estava vendo esse que vc mandou, só que não achei outras moedas.
o do Yahoo tem a vantagem de converter de Euro, Libra, Yen entre outras, é só saber o código de cada moeda.
abs.

FM
0

Página 1 de 1


Resposta rápida

  

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)