Bun venit pe SkullBox!

Bine ai venit, Vizitator. Trebuie să te autentifici sau să îţi creezi un cont.
Ai pierdut sau nu ai primit emailul care conţine codul de activare al contului?

Autentifică-te cu numele de utilizator, parola şi precizează durata sesiunii.
  Pagini: 1 [2]
  Imprimă  
Curs BNR cu PHP, varianta XML, folosind SimpleXML  (Vizualizari 2195)
detective
*

Deconectat Deconectat

Mesaje: 130

Curs BNR cu PHP, varianta XML, folosind SimpleXML, Iun 16, 2008, 01:35

Am reusit, ms mult
Memorat
johnake
*

Deconectat Deconectat

Mesaje: 5

Curs BNR cu PHP, varianta XML, folosind SimpleXML, Sep 30, 2008, 11:13

Hmm... mi se pare mie sau nu face fata BNR'ul?

Cod:
[30-Sep-2008 12:22:33] PHP Fatal error:  Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /home/site/public_html/stoc/curs_valutar.php:31
Stack trace:
#0 /home/site/public_html/stoc/curs_valutar.php(31): SimpleXMLElement->__construct('')
#1 /home/site/public_html/stoc/index.php(411): include('/home/mediamax/...')
#2 {main}
  thrown in /home/site/public_html/stoc/curs_valutar.php on line 31
Linia 31 fiind:
Cod:
$xml = new SimpleXMLElement($curs);
Daca inteleg bine, nu citeste fisierul XML, corect?
« Ultima modificare: Oct 09, 2008, 12:10 de către Agkelos » Memorat
Agkelos
*

Deconectat Deconectat

Mesaje: 5229

WWW
Curs BNR cu PHP, varianta XML, folosind SimpleXML, Sep 30, 2008, 11:23

Nu e interpretat corect XML-ul. Eu folosesc acelasi script pe un site personal si se updateaza corect, deci tind sa cred ca e o problema locala. Poti face un test cu un alt XML sa vezi daca e interpretat corect?  Eventual ia cu CURL un alt fisier si vezi daca reuseste sa il copieze corect.
Memorat



Problemele se rezolva pe forum. Nu trimiteti PM ca nu va ajut.
Pentru urgente, skullbox at skullbox . info.
johnake
*

Deconectat Deconectat

Mesaje: 5

Curs BNR cu PHP, varianta XML, folosind SimpleXML, Sep 30, 2008, 11:39

Am incercat cu "$url = 'http://www.mozilla.org/projects/xslt/test.xml';"
Nici o eroare in error_log.
Problema este de cateva zile, ci nu de la data originala de instalare a scriptului, modificari mari nu am facut la script, decat echo la array-urile care ma intereseaza. E ciudat.
Memorat
Agkelos
*

Deconectat Deconectat

Mesaje: 5229

WWW
Curs BNR cu PHP, varianta XML, folosind SimpleXML, Sep 30, 2008, 12:07

Ai putea sa postezi codul exact asa cum il folosesti? Sa fac un test sa vad ce se intampla.
Memorat



Problemele se rezolva pe forum. Nu trimiteti PM ca nu va ajut.
Pentru urgente, skullbox at skullbox . info.
johnake
*

Deconectat Deconectat

Mesaje: 5

Curs BNR cu PHP, varianta XML, folosind SimpleXML, Sep 30, 2008, 12:14

Cod:
<?php

/* Author: Agkelos
 &nbsp; Link: http://www.skullbox.info/board/curs-bnr-cu-php-varianta-xml-folosind-simplexml-t3106.html
*/


// Trebuie sa iau XML-ul de pe bnr.ro si sa-l salvez in $curs;
$url &nbsp;= 'http://www.bnro.ro/nbrfxrates.xml';
//$url = 'http://www.mozilla.org/projects/xslt/test.xml';
// Daca exista CURL, folosim CURL. Daca nu, folosim file_get_contents();
if( function_exists('curl_init') ) {
 &
nbsp; &nbsp;$curl_handle=curl_init();
 &
nbsp; &nbsp;curl_setopt($curl_handle,CURLOPT_URL,$url);
 &
nbsp; &nbsp;curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
 &
nbsp; &nbsp;curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
 &
nbsp; &nbsp;$curs curl_exec($curl_handle);
 &
nbsp; &nbsp;curl_close($curl_handle);
} else {
 &
nbsp; &nbsp;$curs file_get_contents($url);
 &
nbsp; &nbsp;die(htmlspecialchars($curs));
}

// OK, avem fisierul nbrfxrates.xml. Acum trebuie sa il citim
// pentru asta avem nevoie de SimpleXML

if( !class_exists('SimpleXMLElement') ){
 &
nbsp; &nbsp;// Daca nu suporta SimpleXML e naspa
 
&nbsp; &nbsp;// Nu extind ca nu am chef sa ma complic inutil
 
&nbsp; &nbsp;// Oricine vrea sa ma completeze e binevenit :-)
 
&nbsp; &nbsp;echo 'Serverul nu suporta SimpleXML';
 &
nbsp; &nbsp;exit;
}

// Daca am ajuns pana aici toate-s bune si ne putem pune pe treaba :-)
$rates = array();

$xml = new SimpleXMLElement($curs);
foreach( 
$xml->Body->Cube->Rate as $rate ){
 &
nbsp; &nbsp;$final = array();
 &
nbsp; &nbsp;foreach( $rate->attributes() as $att => $value ){
 &
nbsp; &nbsp; &nbsp; &nbsp;if( strcmp($att,'currency') == ) &nbsp$final['currency'] &nbsp; = (string) $value;
 &
nbsp; &nbsp; &nbsp; &nbsp;if( strcmp($att,'multiplier') == $final['multiplier'] = (string) $value;
 &
nbsp; &nbsp;}
 &
nbsp; &nbsp;$final['rate'] = (string) $rate;
 &
nbsp; &nbsp;if( empty($final['multiplier']) ) $final['multiplier'] = 1;
 &
nbsp; &nbsp;array_push($rates,$final);
}

// Daca am ajuns aici, datele sunt pastrate in $rates

echo '<div style="height:120px;width:250px;overflow:auto;margin:5px; background-image: url(images/curs.jpg); border:1px solid #000000;" align="center">';



echo 
"<table>";

echo 
"<tr><td colspan=2 align=center><b>Curs valutar BNR
 "
.$today date("d.m.Y")."<br/><br/></td></tr></b>";

echo 
"<tr><td>USD: </td><td>".$rates[18]["rate"]."</td><td>RON</td></tr>";
 &
nbsp;
echo 
"<tr><td>Euro: </td><td>".$rates[7]["rate"]."</td><td>RON</td></tr></table></div>";

$dolar $rates[18]["rate"];
$euro $rates[7]["rate"];
?>
Mersi. Sa nu iei in seama linia die(htmlspecialchars($curs)); am vrut sa testez ceva.
LE: Cred ca o sa incerc sa fac un script ceva mai simplu, care sa-mi copieze content-ul xml'ului cu fwrite, scriptul sa citeasca xml'ul local iar la un anume interval sa-si actualizeze continutul. Smile
« Ultima modificare: Oct 09, 2008, 12:10 de către Agkelos » Memorat
Agkelos
*

Deconectat Deconectat

Mesaje: 5229

WWW
Curs BNR cu PHP, varianta XML, folosind SimpleXML, Sep 30, 2008, 13:34

Mai, mie imi merge perfect. Nu mai ai ceva pe acolo care ar putea afecta?
Memorat



Problemele se rezolva pe forum. Nu trimiteti PM ca nu va ajut.
Pentru urgente, skullbox at skullbox . info.
johnake
*

Deconectat Deconectat

Mesaje: 5

Răspuns: Curs BNR cu PHP, varianta XML, folosind SimpleXML, Oct 06, 2008, 13:21

Salut,
Imi cer scuze pentru raspunsul intarziat, nu am reusit sa-i dau de cap. Intr-un final am folosit:
Cod:
<?php
if (time()-filemtime("nbrfxrates.xml") > 3600) {
    
$file file("http://www.bnro.ro/nbrfxrates.xml");
    
$fopen fopen("nbrfxrates.xml","w");
    foreach (
$file as $line) { 
      
fputs($fopen,$line); 
      }
      
fclose ($fopen);
      
$xld "loaded afresh (and not cached)";
    } else {

    
$file file("nbrfxrates.xml");
    
$xld "cached (and not loaded afresh)";
    }


$rate[RON] = 1.00;
foreach (
$file as $line) {
  
ereg("currency='([[:alpha:]]+)'",$line,$gota);
  if (
ereg(">([[:graph:]]+)<",$line,$gotb)) {
    
$rate[$gota[1]] = $gotb[1];
  }
}

$RON round($rate[RON], 8);
$EURO round($RON $rate[EUR], 8);
$USD round($RON $rate[USD], 8);
$GBP round($RON $rate[GBP], 8);


echo 
'<div style="height:120px;width:250px;overflow:auto;margin:5px; background-image: url(images/curs.jpg); border:1px solid #000000;" align="center">';

echo 
"<table>";

echo 
"<tr><td colspan=3 align=center><b>Curs valutar BNR<br> ".$today date("d.m.Y")."<br/><br/></td></tr></b>";
echo 
"<tr><td><img src=usd.gif></td><td><b>USD:</b> </td><td><b>".$USD."</b></td><td><b>RON</b></td></tr>";
echo 
"<tr><td><img src=eur.gif></td><td><b>EURO:</b> </td><td><b>".$EURO."</b></td><td><b>RON</b></td></tr></table></div>";

?>

Offtopic: De ce la code tags cand folosesc php short-tags nu-mi face highlight la cod? Tongue
Memorat
Agkelos
*

Deconectat Deconectat

Mesaje: 5229

WWW
Răspuns: Curs BNR cu PHP, varianta XML, folosind SimpleXML, Oct 06, 2008, 13:23

Ar fi trebuit sa iti functioneze si varianta care ai postat-o inainte. Anyway, bine ca te-ai descurcat intr-un final Tongue

Offtopic: De ce la code tags cand folosesc php short-tags nu-mi face highlight la cod? Tongue
Pentru ca short-tags e obsolete si e descurajata utilizarea inca din PHP4 Tongue
« Ultima modificare: Oct 09, 2008, 12:10 de către Agkelos » Memorat



Problemele se rezolva pe forum. Nu trimiteti PM ca nu va ajut.
Pentru urgente, skullbox at skullbox . info.
Y2K
*

Deconectat Deconectat

Mesaje: 156

WWW
Răspuns: Curs BNR cu PHP, varianta XML, folosind SimpleXML, Dec 05, 2008, 23:35

eu am modifcat putin codul sa imi dea si in alte monezii ...


Cod:
<?php
if (time()-filemtime("nbrfxrates.xml") > 3600) {
    
$file file("http://www.bnro.ro/nbrfxrates.xml");
    
$fopen fopen("nbrfxrates.xml","w");
    foreach (
$file as $line) { 
      
fputs($fopen,$line); 
      }
      
fclose ($fopen);
      
$xld "loaded afresh (and not cached)";
    } else {

    
$file file("nbrfxrates.xml");
    
$xld "cached (and not loaded afresh)";
    }


$rate[RON] = 1.00;
foreach (
$file as $line) {
  
ereg("currency='([[:alpha:]]+)'",$line,$gota);
  if (
ereg(">([[:graph:]]+)<",$line,$gotb)) {
    
$rate[$gota[1]] = $gotb[1];
  }
}

$RON round($rate[RON], 8);
$EURO round($RON $rate[EUR], 8);
$USD round($RON $rate[USD], 8);
$GBP round($RON $rate[GBP], 8);
$CHF round($RON $rate[CHF], 8);
$HUF round($RON $rate[HUF], 8);


echo 
'<div style="height:170px;width:200px;overflow:auto;margin:5px; border:1px solid #000000;" align="center">';

echo 
"<table>";

echo 
"<tr><td colspan=3 align=center><b><center>Curs valutar BNR<br> ".$today date("d.m.Y")."<br/><br/></td></tr></b></center>";
echo 
"<tr><td></td><td><b>EURO:</b> </td><td><b>".$EURO."</b></td><td><b>RON</b></td></tr>";
echo 
"<tr><td></td><td><b>USD:</b> </td><td><b>".$USD."</b></td><td><b>RON</b></td></tr>";
echo 
"<tr><td></td><td><b>CHF:</b> </td><td><b>".$CHF."</b></td><td><b>RON</b></td></tr>";
echo 
"<tr><td></td><td><b>100HUF:</b> </td><td><b>".$HUF."</b></td><td><b>RON</b></td></tr></table></div>";

?>


iar la rulare imi zice :


Citat
Warning: filemtime() [function.filemtime]: stat failed for nbrfxrates.xml in /home/XXXXX/public_html/aaa.php on line 2

Warning: fopen(nbrfxrates.xml) [function.fopen]: failed to open stream: Permission denied in /home/XXXXX/public_html/aaa.php on line 4

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXXpublic_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXXpublic_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXXpublic_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fputs(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 6

Warning: fclose(): supplied argument is not a valid stream resource in /home/XXXXX/public_html/aaa.php on line 8
Curs valutar BNR
06.12.2008

   EURO:    3.8545   RON
   USD:    3.021   RON
   CHF:    2.5112   RON
   100HUF:    1.4661   RON


cum sa fac sa scap de eroare asta ?  Broken heart
Memorat

Sa Mori Pentru Patrie ? Astea-s POVESTI


astan
*

Deconectat Deconectat

Mesaje: 357

Răspuns: Curs BNR cu PHP, varianta XML, folosind SimpleXML, Dec 06, 2008, 00:51

Probabil ca fisierul nbrfxrates.xml nu exista unde te astepti tu sa fie sau nu ai drepturi pe el.
« Ultima modificare: Dec 06, 2008, 00:53 de către astan » Memorat
Agkelos
*

Deconectat Deconectat

Mesaje: 5229

WWW
Răspuns: Curs BNR cu PHP, varianta XML, folosind SimpleXML, Dec 06, 2008, 01:09

Cel mai probabil nu exista fisierul nbrfxrates.xml asta fiind si motivul pentru care da eroare la fputs().

Tu ce incerci sa faci? Banuiesc ca downloadezi fisierul inainte sa il folosesti... nu?
Memorat



Problemele se rezolva pe forum. Nu trimiteti PM ca nu va ajut.
Pentru urgente, skullbox at skullbox . info.
Y2K
*

Deconectat Deconectat

Mesaje: 156

WWW
Răspuns: Curs BNR cu PHP, varianta XML, folosind SimpleXML, Dec 06, 2008, 06:44

fisierul exista ....
Citat
This XML file does not appear to have any style information associated with it. The document tree is shown below.
     

<DataSet xsi:schemaLocation="http://www.bnr.ro/xsd nbrfxrates.xsd">

<Header>
<Sender>National Bank of Romania</Sender>
<SendingDate>2008-12-05</SendingDate>
<MessageType>DR</MessageType>
</Header>

<Body>
<Subject>Reference rates</Subject>
<OrigCurrency>RON</OrigCurrency>

<Cube date="2008-12-05">
<Rate currency="AUD">1.9479</Rate>
<Rate currency="BGN">1.9708</Rate>
<Rate currency="CAD">2.3700</Rate>
<Rate currency="CHF">2.5112</Rate>
<Rate currency="CZK">0.1502</Rate>
<Rate currency="DKK">0.5174</Rate>
<Rate currency="EGP">0.5469</Rate>
<Rate currency="EUR">3.8545</Rate>
<Rate currency="GBP">4.4277</Rate>
<Rate currency="HUF" multiplier="100">1.4661</Rate>
<Rate currency="JPY" multiplier="100">3.2755</Rate>
<Rate currency="MDL">0.2933</Rate>
<Rate currency="NOK">0.4216</Rate>
<Rate currency="PLN">0.9938</Rate>
<Rate currency="RUB">0.1076</Rate>
<Rate currency="SEK">0.3643</Rate>
<Rate currency="SKK">0.1277</Rate>
<Rate currency="TRY">1.9273</Rate>
<Rate currency="USD">3.0210</Rate>
<Rate currency="XAU">74.9053</Rate>
<Rate currency="XDR">4.5187</Rate>
</Cube>
</Body>
</DataSet>



am luoat codul postat mai sus de johnake si am introdus alte valori ca pe ala am priceput si eu ceva Winking
Memorat

Sa Mori Pentru Patrie ? Astea-s POVESTI


johnake
*

Deconectat Deconectat

Mesaje: 5

Răspuns: Curs BNR cu PHP, varianta XML, folosind SimpleXML, Dec 16, 2008, 13:02

Scriptul ala practic iti face o "oglinda" a fisierului xml pe server-ul tau si il citeste de-acolo. Am zis ca este mult mai practic asa... De mesajele alea de eroare poti scapa foarte usor cu un error control operator cum ar fi '@' (adica pui un @ in fata fiecarei functii care genereaza erorile), dar totusi eu cred ca problema e din server-ul tau si nu as recomanda aceasta solutie. Am incercat si pe un localhost, intr-adevar la prima executie da un warning: Warning: filemtime() [function.filemtime]: stat failed for nbrfxrates.xml in xxx on line 4, insa la un refresh dispare. Warning-ul e logic deoarece se face o operatiune matematica intre timpul curent si data ultimei modificari a continutului fisierului, fara ca acesta sa fie creat in prealabil.
Memorat
SkullAds
Ecspert
ReclAmator
* * * * *
Google AdSense

Gen: Bărbat
Mesaje: Multe

Reclama AdSense,
 

 
   


Pagini: 1 [2]
  Imprimă  
 
Schimbă forumul:  

Ethical hacking and programming community
Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC
Traducerea în limba română © 2006-2007 www.smf.ro