Nisam na vreme video ovu temu, pa mi je drugar uradio, pošto sam ja laik za php.
Uz njegovu dozbolu stavljam ovde, možda još nekom zatreba:
Code:
<?php
/*
* Kursna Lista 1.0.0
*
* Copyright (c) 2008 IvanG (stribor.co.yu)
* Licensed under GPL (http://www.gnu.org/licenses/gpl.html) licenses.
*
*/
/**
* Get a web file (HTML, XHTML, XML, image, etc.) from a URL. Return an
* array containing the HTTP server response header fields and content.
* Function taken from http://nadeausoftware.com/arti...ip_how_get_web_page_using_curl
* and added POST request data by IvanG
*/
function get_web_page( $url, $post=NULL )
{
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
// ako dobijete grešku, sledeću liniju označite kao komentar
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => "Pera", // who am i
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
CURLOPT_POST => $post!=NULL, // if there is post pass it on
CURLOPT_POSTFIELDS => $post // post parameters
);
$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
return $header;
}
// URL sa koga se uzimaju podaci
$url = "http://www.nbs.rs/internet/cirilica/scripts/kl.html";
//$url = "http://www.nbs.rs/internet/latinica/scripts/kl.html";
// POST podaci da bi se dobila kursna lista za današnji datum
$post_data = "datum=" . date("d.m.Y") . "&eksport=html&vrsta=3";
// Pokupi podatke sa nbs za današnji datum
$indata = get_web_page($url, $post_data);
if($indata['errno'] != 0)
die($indata['errmsg']);
preg_match_all('/<td.*?>(\\d+?)<\/td><td.*?>(.*?)<\/td><td.*?>(.*?)<\/td><td.*?>(.*?)<\/td>.*?<td.*?>(.*?)<\/td>/s', $indata['content'], $data, PREG_SET_ORDER);
if(count($data) > 0) {
echo "<table\n><tr><th>ŠIFRA VALUTE</th><th>NAZIV ZEMLjE</th><th>OZNAKA VALUTE</th><th>VAŽI ZA</th><th>DINARA</th></tr>\n";
// ispis podataka
for ($i = 0; $i < count($data); $i++) {
echo "<tr>\n<td>";
echo $data[$i][1]; // Sifra valute
echo "</td><td>";
echo $data[$i][2]; // Naziv zemlje
echo "</td><td>";
echo $data[$i][3]; // Oznaka valute
echo "</td><td>";
echo $data[$i][4]; // Vazi za
echo "</td><td>";
echo $data[$i][5]; // Dinara
echo "</td><td>\n</tr>";
}
echo "</table>";
} else {
echo "Podaci nisu nađeni.. ukoliko vidiš željene podatke u sledećem tekstu, znači da je promenjen format i potrebno je uskladiti regexp<br />\n";
echo $indata['content'];
}
?>
Ja sam za sebe izvršio izmenu u kodu da mi prikazuje samo kurs evra, tako što sam izbacio echo linije u if(count($data), pa stavio
Code:
...
if(count($data) > 0) {
echo "1 € = ";
// ispis podataka
echo $data[0][5];
echo "\n";
} else {
...