Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Merita un Termostat Smart pentru ...

Sfat achizitie MTB Devron Riddle

Problema mare cu parintii= nervi ...

switch microtik
 Permis categoria B la 17 ani

Sfaturi pentru pregatirea de eval...

Crapaturi placa

cum imi accesez dosarul electroni...
 Momentul Aprilie 1964

Sursa noua - zgomot ?

A fost lansat Ubuntu 24.04 LTS

Pareri apartament in zona Berceni?
 Free streaming SkyShowtime de la ...

Skoda Fabia 1.0 TSI (110 CP)- 19 ...

Mezina familiei, Merida BigNine

The Tattooist of Auschwitz (2024)
 

Preluare curs valutar

- - - - -
  • Please log in to reply
23 replies to this topic

#1
juannn

juannn

    Active Member

  • Grup: Members
  • Posts: 1,407
  • Înscris: 09.03.2006
Am folosit scriprul acesta pentru ami afisa cursul bnr pe site. Insa dupa cum ati observat pagina de preluare a cursului de pe site-ul bnr s-a schimbat de la http://www.bnro.ro/Ro/Info la http://www.bnr.ro/Cu...schimb-524.aspx
<?php 
// asta e pentru stilul de afisare bold sau normal... 
echo '<style type="text/css">  
	<!--  
	.bold {  
		font-family: Verdana, Arial, Helvetica, sans-serif;  
		font-size: 12px;  
		font-weight: bold;}  
	.normal {  
		font-family: Verdana, Arial, Helvetica, sans-serif;  
		font-size: 12px;}  
	-->  
	</style>';  
// aici se incearca deschiderea fisierului de la bnr 
$file = fopen("http://www.bnro.ro/Ro/Info/", "r");  
if (!$file)  
	{  
	echo "<p>Imposibil sa deschid fisierul pentru citire.";  
	exit;  
	}  
$today = date("d-m-Y"); 
// se baga in array numele valutelor pentru afisare ulterioara  
$numeValuta = array("Dolar SUA","Euro","Gram Au","Dobinda luna curenta");  
// se genereaza capul de tabel cu data de azi 
echo '<table border="0" cellspacing="5" cellpadding="0" class="normal">';  
echo '<tr><td><div align="center">Curs valutar  
	<strong>'.$today.'</strong><br>  
	(<a href="http://www.bnro.ro/Ro/Info/" target="_blank">sursa BNR</a>) 
	:</div></td></tr>';  
echo '<tr><td align="center" valign="top">  
	<table border="0" cellspacing="5" cellpadding="0" class="normal">';  
// se cauta cursul in fisierul preluat de la bnr 
while (!feof($file))  
	{  
	$line = fgets($file, 1024);  
	// se executa cautarea in fisier 
	if (eregi('<TD class="bold">(.*)</TD>', $line, $out))	  
		{  
		$cursvalutar = each ($out);  
		// se afiseaza ce sa gasit in fisier 
		while (list($key,$val)=each($numeValuta))  
			{			  
			if ($val == "Euro")  
				{				
				$euroi=$cursvalutar[1];  
				}  
			if ($val == "Dolar SUA")  
				{				
				$dolarel=$cursvalutar[1];  
				}  
			if ($val == "Gram Au")  
				{				  
				$auri=$cursvalutar[1]; 
				} 
			if ($val == "Dobinda luna curenta") 
				{		
				$dobanzi=$cursvalutar[1];  
				} 
			// dupa preluare se intrerupe bucla 
			break; 
			} 
		} 
	} 
// se inchide fisierul deschis si tagurile html 
fclose($file);  
// se afiseaza cursul 
echo "<tr><td>USD</td>".$euroi. 
	"<td>LEI</td></tr>";  
echo "<tr><td>Euro</td>".$dolarel. 
	"<td>LEI</td></tr>"; 
echo "<tr><td>Gram Aur</td>".$auri. 
	"<td>LEI</td></tr>"; 
echo "<tr><td>Dobanda</td>".$dobanzi. 
	"<td>%</td></tr>"; 
echo '</table></td></tr></table>';  
?>

Am incercat sa modific acest rind  
$file = fopen("http://www.bnro.ro/Ro/Info/", "r");
  
cam asa Cod:
$file = fopen("http://www.bnr.ro/Cursul-de-schimb-524.aspx", "r");
insa nu merge. Din moment ce sunt beginer in ale programarii va rog sa-mi spuneti ce si cum ar trebui modificat ca sa functioneze.

#2
Quebec

Quebec

    Junior Member

  • Grup: Members
  • Posts: 70
  • Înscris: 17.03.2006
pune in loc de nume site vechiul ip (194.102.208.22)

#3
goblenro

goblenro

    Member

  • Grup: Members
  • Posts: 973
  • Înscris: 13.06.2005

View PostQuebec, on Mar 11 2009, 08:59, said:

pune in loc de nume site vechiul ip (194.102.208.22)
Folositi xml-ul pe care il pune BNR-ul la dispozitie: http://www.bnro.ro/nbrfxrates.xml site-ul poate se mai schimba....XML-ul o sa ramana

#4
juannn

juannn

    Active Member

  • Grup: Members
  • Posts: 1,407
  • Înscris: 09.03.2006
Da-mi un exemplu de cod care sa faca exact acelasi lucru ca si codul postat de mine mai sus numai sa fie in xml.

#5
silverdrop

silverdrop

    Junior Member

  • Grup: Members
  • Posts: 74
  • Înscris: 08.02.2009
Exemplu parsing XML cu DOM. Mai multe detalii aici

stiri.xml
<stiri>
	<stire data="12-03-2009">
		<titlu>Stire 1</titlu>
		<continut>Continut 1</continut>
	</stire>
	<stire data="12-03-2009">
		<titlu>Stire 2</titlu>
		<continut>Continut 2</continut>
	</stire>
</stiri>

stiri.php
<?php
	$doc = new DOMDocument();
	$doc->load('stiri.xml');

	$stiri = $doc->getElementsByTagName('stire');
	foreach ($stiri as $stire){
		$data = $stire->getAttribute('data');
		$titlu = $stire->getElementsByTagName('titlu')->item(0)->nodeValue;
		$continut = $stire->getElementsByTagName('continut')->item(0)->nodeValue;
	
		echo '<b>'.$titlu.'</b> ['.$data.']<br>'.$continut.'<br><br>'."\n";
	}
?>


#6
andreia00

andreia00

    New Member

  • Grup: Members
  • Posts: 1
  • Înscris: 12.03.2009
Satulare,

Va rog cine ma poate ajuta si pe mine cu scriptul de la bnr, nu-mi mai functioneaza cursul euro de cateva zile pentru site si nici convertorul.
Nu stiu unde trebuie schimbat si ce trebuie schimbat.
Ma puteti ajuta?

asta e scriptul

<?
$findux[] = ',';
$findux[] = '.';
$findux[] = '!';
$findux[] = ':';
$findux[] = ';';
$findux[] = '"';
$findux[] = ' ';
$replaceux[] = '';
$replaceux[] = '';
$replaceux[] = '';
$replaceux[] = '';
$replaceux[] = '';
$replaceux[] = '';
$replaceux[] = '-';



function curs_valutar($value){
$file = fopen("http://www.bnro.ro/n...nbrfxrates.xml", "r");
while (!feof($file)){
$line = fgets($file, 1024);
if (eregi('<Rate currency=\''.$value.'\' >(.*)</Rate>', $line, $out)){
$data = each($out);
return $data[1];
}
}
fclose($file);
}
$eur=curs_valutar("EUR");
$findspatiu[] = '<Rate';
$findspatiu[] = '>';
$findspatiu[] = 'currency=\'EUR\'';
$findspatiu[] = '</Rate';
$findspatiu[] = ' ';
$replacespatiu[] = '';
$replacespatiu[] = '';
$replacespatiu[] = '';
$replacespatiu[] = '';
$replacespatiu[] = '';
$eur2 = str_replace($findspatiu, $replacespatiu, $eur);

?>

#7
vad

vad

    Active Member

  • Grup: Members
  • Posts: 1,741
  • Înscris: 25.12.2004
am si eu o rugaminte, sunt un incepator in ale scripturilor, daca ma poate ajuta cineva cu un script pentru cursul valutar, insa m-ar interesa sa am doar euro si dolarul, insa sa imi apara si steagul aferent fiecarei monede precum si o sageata de ce sa aratae evolutia, in sus sau in jos si cu cati bani s-a modificat!
multumesc!

#8
goblenro

goblenro

    Member

  • Grup: Members
  • Posts: 973
  • Înscris: 13.06.2005

View Postvad, on Mar 13 2009, 12:31, said:

am si eu o rugaminte, sunt un incepator in ale scripturilor, daca ma poate ajuta cineva cu un script pentru cursul valutar, insa m-ar interesa sa am doar euro si dolarul, insa sa imi apara si steagul aferent fiecarei monede precum si o sageata de ce sa aratae evolutia, in sus sau in jos si cu cati bani s-a modificat!
multumesc!
ce vrei tu este un script mult prea customizabil ... se poate face contra cost

#9
silverdrop

silverdrop

    Junior Member

  • Grup: Members
  • Posts: 74
  • Înscris: 08.02.2009
@andreia00
Merge scriptul dar este extrem de mult cod pentru o chestie relativ simpla...
Vezi exemplul DOM din postul anterior, este foarte usor de implememtat in xml-ul general de BNR.
Un tutorial forte bun gasiti aici

#10
juannn

juannn

    Active Member

  • Grup: Members
  • Posts: 1,407
  • Înscris: 09.03.2006
Dau o bere cui imi face un script in xml care sa preia date de aici http://www.bnro.ro/nbrfxrates.xml pentru USD EUR GRAM AUR SI sa le afiseze sub forma de tabel customizabil inaltime, latime, celule......
silverdrop eu iti inteleg bunele intentii dar link-uri spre teorie chiar nu-mi trebui ca oricum nu inteleg atributele alea .... m-ar ajuta un link catre un model care sa afiseze ceea ce vreau eu eventual sa-l modific eu ca asa sa fac eu de la 0 slabe sanse,

SCRIPTUL final ar fi foarte util de postat aici ca sunt multi useri interesati de asa ceva.

Edited by juannn, 14 March 2009 - 15:37.


#11
silverdrop

silverdrop

    Junior Member

  • Grup: Members
  • Posts: 74
  • Înscris: 08.02.2009

Quote

m-ar ajuta un link catre un model care sa afiseze ceea ce vreau eu eventual sa-l modific eu ca asa sa fac eu de la 0 slabe sanse
Modelul il ai de la inceput, e printre primele posturi, e exact ce vrei tu... nu trebuie decat sa modifici oleaca atributele alea (stire, data, titlu, ...)  <_<

Uite cum facem, incerci tu sa modifici modelul ala de mai sus si daca nu reusesti postezi aici ce ai facut si noi te corectam  :lol:
Nu cred ca o sa-ti dea careva scriptul gata facut (gratis ma refer)...

#12
juannn

juannn

    Active Member

  • Grup: Members
  • Posts: 1,407
  • Înscris: 09.03.2006
Bine... am sa incerc eu Deci vreau sa-l fac in xml sursa de date va fi aceasta http://www.bnro.ro/nbrfxrates.xml  pentru asta voi folosi primul exemplu nu?

#13
silverdrop

silverdrop

    Junior Member

  • Grup: Members
  • Posts: 74
  • Înscris: 08.02.2009
xml, este fisierul din care iei informatia, tu vei lucra cu php.
Nu poti prelua date cu xml...

#14
silverdrop

silverdrop

    Junior Member

  • Grup: Members
  • Posts: 74
  • Înscris: 08.02.2009

View Postjuannn, on Mar 14 2009, 18:01, said:

Bine... am sa incerc eu Deci vreau sa-l fac in xml sursa de date va fi aceasta http://www.bnro.ro/nbrfxrates.xml  pentru asta voi folosi primul exemplu nu?

Ai rezolvat ceva? :rolleyes:

#15
juannn

juannn

    Active Member

  • Grup: Members
  • Posts: 1,407
  • Înscris: 09.03.2006
:angry2:  nu din pacate. Trebuie sa caut pe net niste exemple concludente. Imi trebuie o documentatie despre cum se preiau date din xml xu php si apoi afisate intr-un tabel. Stiu ca ce spun eu e foarte simplu dar nu intelg programarea asta.

<?php
	$doc = new CURSBNR();
	$doc->load('http://www.bnro.ro/nbrfxrates.xml ');

	$stiri = $doc->getElementsByTagName('stire');
	foreach ($stiri as $stire){
		$data = $stire->getAttribute('data');
		$titlu = $stire->getElementsByTagName('titlu')->item(0)->nodeValue;
		$continut = $stire->getElementsByTagName('continut')->item(0)->nodeValue;
	
		echo '<b>'.$titlu.'</b> ['.$data.']<br>'.$continut.'<br><br>'."\n";
	}
?>

Macar in exemplu de mai sus rindurile 3 si 4 sunt bune? Cu getElements extrag valutele dupa nume din xml?

Edited by juannn, 16 March 2009 - 23:29.


#16
goblenro

goblenro

    Member

  • Grup: Members
  • Posts: 973
  • Înscris: 13.06.2005
search

#17
silverdrop

silverdrop

    Junior Member

  • Grup: Members
  • Posts: 74
  • Înscris: 08.02.2009
1. De ce new CURSBNR(); in loc de new DOMDocument();? DOMDocument este tipul documentului. (din asta imi rezulta ca nu prea te-ai uitat prin linkurile alea 2)  <_<

2. Ti-am spus sa schimbi valorile elementelor/atributelor din exemplul dat.
Exemplu: In loc de $stiri = $doc->getElementsByTagName('stire'); trebuia sa devina $cubes = $doc->getElementsByTagName('Cube');
Unde vezi tu in xml-ul de la BNR vreun element, stire, titlu sau continut?

3. Ce alte exemple iti mai trebuie, in exemplul ala aveai un fisier XML si scriptul PHP care extragea informatia din el. Trebuia sa pui fata-in-fata xml-ul din exemplu si cel de la BNR si sa vezi diferentele!

Am postat scriptul cu ce face fiecare linie in parte, si sper sa te lamuresti cum sta treaba ca mai clar de atat nu-ti pot explica... Daca nu, nu stiu, poate o tura pe la librarie?  :deadtongue:
<?php
$doc = new DOMDocument(); //tipul documentului
$doc->load('http://www.bnro.ro/nbrfxrates.xml'); // deschide fisierul furnizat de BNR
	
$cubes = $doc->getElementsByTagName('Cube'); // gaseste toate elementele de forma <Cube> </Cube>
foreach($cubes as $cube){ // pentru fiecare <Cube> </Cube> gasit executa ...
	$date = $cube->getAttribute('date'); // din elementul <Cube> </Cube> ia atributul 'date' (<Cube date="2009-03-17"> </Cube>
	$rates = $cube->getElementsByTagName('Rate'); //gaseste toate elementele de forma <Rate> </Rate> din Cube
	foreach($rates as $rate){ // pentru fiecare Rate din Cube executa...
		$valuta = $rate->getAttribute('currency'); // din elementul <Cube> </Cube> ia valoarea atributului 'currency'
		switch ($valuta){ // discutie asupra valorii lui $valuta
			case 'EUR': $euro = $rate->nodeValue; break; // daca $valuta == 'EUR' ia valoarea nodului (<Rate currency="valuta">valoare</Rate>)
			case 'USD': $dolar = $rate->nodeValue; break; // daca $valuta == 'USD' ia valoarea nodului (<Rate currency="valuta">valoare</Rate>)
			case 'XAU': $aur = $rate->nodeValue; break; // daca $valuta == 'XAU' ia valoarea nodului (<Rate currency="valuta">valoare</Rate>)
		}
	}
}
echo 'Curs din data de: '.$date.'<br>';
echo 'EURO: '.$euro.' | DOLAR: '.$dolar.' | AUR: '.$aur; // afisarea valorilor
?>


#18
Jimie

Jimie

    Member

  • Grup: Members
  • Posts: 527
  • Înscris: 13.04.2005
Desteptii de la BNR au bagat virgula in loc de punct acum pentru despartirea valorilor zecimale.. e ceva de modificat pentru chestia asta ?

Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate