Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Хочу найти скрипт который будет парсить (брать с сайта) курс валют, может кто-то, что нить мне подскажет
<?
// Получаем XML-файл с источника
$contentuc = get_contentuc();
// Разбираем содержимое, при помощи регулярных выражений
$pattern = "#<item>[\s]*<date>(.+?)</date>[\s]*".
"<code>(.+?)</code>[\s]*".
"<char3>(.+?)</char3>[\s]*".
"<size>(.+?)</size>[\s]*".
"<name>(.+?)</name>[\s]*".
"<rate>(.+?)</rate>[\s]*".
"<change>(.+?)</change>[\s]*".
"#i";
preg_match_all($pattern, $contentuc, $out);
unset($out[0]);
for($i = 0; $i < count($out[1]); $i++)
{
if($out[2][$i] == 840) $dollaruc = $out[6][$i];
if($out[2][$i] == 978) $eurouc = $out[6][$i];
if($out[2][$i] == 643) $rubuc = $out[6][$i];
if($out[2][$i] == 826) $steruc = $out[6][$i];
if($out[2][$i] == 860) $summuc = $out[6][$i];
if($out[2][$i] == 974) $belarusuc = $out[6][$i];
if($out[2][$i] == 981) $gruzijauc = $out[6][$i];
if($out[2][$i] == 124) $kanadauc = $out[6][$i];
if($out[2][$i] == 203) $chehijauc = $out[6][$i];
if($out[2][$i] == 208) $danijauc = $out[6][$i];
if($out[2][$i] == 233) $eestiuc = $out[6][$i];
if($out[2][$i] == 392) $japanuc = $out[6][$i];
if($out[2][$i] == 398) $kazahuc = $out[6][$i];
if($out[2][$i] == 428) $latvijauc = $out[6][$i];
if($out[2][$i] == 440) $litnauc = $out[6][$i];
if($out[2][$i] == 498) $moldovauc = $out[6][$i];
}
echo "100 USD - <B>$dollaruc</B> UAH<br>";
echo "100 EUR - <B>$eurouc</B> UAH<br>";
echo "10 RUR - <B>$rubuc</B> UAH<br>";
echo "100 Фунтов стерлингов Соединенного королевства - <B>$steruc</B> UAH<br>";
echo "100 Узбекских сумм - <B>$summuc</B> UAH<br>";
echo "10 Белорусских рублей - <B>$belarusuc</B> UAH<br>";
echo "100 Грузинских лари - <B>$gruzijauc</B> UAH<br>";
echo "100 Канадских долларов - <B>$kanadauc</B> UAH<br>";
echo "100 Чешских крон - <B>$chehijauc</B> UAH<br>";
echo "100 Датских крон - <B>$danijauc</B> UAH<br>";
echo "100 Эстонских крон - <B>$eestiuc</B> UAH<br>";
echo "1000 Японских йен - <B>$japanuc</B> UAH<br>";
echo "100 Казахских теньге - <B>$kazahuc</B> UAH<br>";
echo "100 Латвийских лат - <B>$latvijauc</B> UAH<br>";
echo "100 Литовских лит - <B>$litnauc</B> UAH<br>";
echo "100 Молдавских леев - <B>$moldovauc</B> UAH<br>";
function get_contentuc()
{
// Формируем ссылку к источнику валюты
$link = "http://www.bank-ua.com/export/currrate.xml";
// Загружаем HTML-страницу
$fd = fopen($link, "r");
$text="";
if (!$fd) echo "Курсы временно недоступны";
else
{
// Чтение содержимого файла в переменную $text
while (!feof ($fd)) $text .= fgets($fd, 4096);
}
// Закрыть открытый файловый дескриптор
fclose ($fd);
return $text;
}
?>
Если более дубово и прямолинейно, то есть универсальный подход, например:Хочу найти скрипт который будет парсить (брать с сайта) курс валют...
<?
$addr = "http://www.bank-ua.com"; // откуда парсим
$begblock1 = "USD/UAH"; $begblock2 = "EUR/UAH"; // начало блока
$begin = "size=\"2\" face=\"Tahoma\">"; // фрагмент HTML-кода до полезных данных
$end = " </font>"; // фрагмент HTML-кода после полезных данных
$result = array(); // массив строк результата
$screen = file($addr);
$i = 0;
while ($i < sizeof($screen) && strpos($screen[$i], $begblock1) == false) {$i++;}
$temp = explode($begin, $screen[$i + 2]);
$temp = explode($end, $temp[1]);
$kursdollar = $temp[0];
$i = 0;
while ($i < sizeof($screen) && strpos($screen[$i], $begblock2) == false) {$i++;}
$temp = explode($begin, $screen[$i + 2]);
$temp = explode($end, $temp[1]);
$kurseuro = $temp[0];
echo "USD/UAH - <B>$kursdollar</B><BR>EUR/UAH - <B>$kurseuro</B>";
?>
<?
$addr = "http://www.rbc.ru/index.html";
$begblock1 = "USD ЦБ РФ"; $begblock2 = "EUR ЦБ РФ";
$begin = "<FONT SIZE=\"-2\"> ";
$end = "</FONT>";
$result = array();
$screen = file($addr);
$i = 0;
while ($i < sizeof($screen) && strpos($screen[$i], $begblock1) == false) {$i++;}
$temp = explode($begin, $screen[$i + 2]);
$temp = explode($end, $temp[1]);
$kursdollar = $temp[0];
$i = 0;
while ($i < sizeof($screen) && strpos($screen[$i], $begblock2) == false) {$i++;}
$temp = explode($begin, $screen[$i + 2]);
$temp = explode($end, $temp[1]);
$kurseuro = $temp[0];
echo "USD/RUB - <B>$kursdollar</B><BR>EURO/RUB - <B>$kurseuro</B>";
?>
<?
$addr = "http://privatbank.ua:8085/info/ccyrate/rate.stm?typ=N"; // адрес страницы
$begblock1 = "EUR /UAH"; $begblock2 = "USD /UAH"; $begblock3 = "RUR /UAH";// идентификатор начала блока
$begin = "<td class=curses align=\"right\">"; // фрагмент HTML-кода до полезных данных
$end = "</td>"; // фрагмент HTML-кода после полезных данных
$result = array(); // массив строк результата
$screen = file($addr);
$i = 0;
while ($i < sizeof($screen) && strpos($screen[$i], $begblock1) == false) {$i++;}
$temp = explode($begin, $screen[$i + 0]);
$temp = explode($end, $temp[1]);
$kurseuro = substr($temp[0], 0, 9);
$i = 0;
while ($i < sizeof($screen) && strpos($screen[$i], $begblock2) == false) {$i++;}
$temp = explode($begin, $screen[$i + 0]);
$temp = explode($end, $temp[1]);
$kursdollar = substr($temp[0], 0, 9);
$i = 0;
while ($i < sizeof($screen) && strpos($screen[$i], $begblock3) == false) {$i++;}
$temp = explode($begin, $screen[$i + 0]);
$temp = explode($end, $temp[1]);
$kursrur = substr($temp[0], 0, 9);
echo "EUR/UAH - <B>$kurseuro</B><BR>USD/UAH - <B>$kursdollar</B><BR>RUR/UAH - <B>$kursrur</B>";
?>
<?
//калькулятор\\
if (isset($_GET['srcCcy']))
{
$from = $_GET['srcCcy']; //курс валюты
}
if (isset($_GET['srcAmt']))
{
$howmany = $_GET['srcAmt']; //количество переводимой валюты
}
if (isset($_GET['destCcy']))
{
$to = $_GET['destCcy']; //курс валюты в которую переводим
}
if (isset($_GET['srcCcy']) && isset($_GET['srcAmt']) && isset($_GET['destCcy']))
{
$result_val = (($howmany * $from) / $to); // формуля =))))
}
?>
<form name="Calculator" method="get">
<center>
<p class=default_text align=center><b>Пересчитать сумму</b></p>
<table>
<tr>
<td class=text align="right">из</td>
<td class=text>
<select class=control name="srcCcy">
<option value="<?=$kurseuro?>" <?if($kurseuro == $from) { echo "selected"; }?>>Евро</option>
<option value="<?=$kursrur?>" <?if($kursrur == $from) {echo "selected"; }?>>Российский рубль</option>
<option value="<?=$kursdollar?>" <?if($kursdollar == $from) {echo "selected";}?>>Доллар США</option>
<option value="1" <?if(1 == $from) { echo "selected"; }?>>Украинская гривня</option>
</select>
сумма: <input name="srcAmt" type="text" value="<?if(isset($howmany)) {echo "$howmany"; }?>" size=20 maxlength=16>
</td>
</tr>
<tr>
<td class=text align="right">в</td>
<td class=text>
<select class=control name="destCcy">
<option value="<?=$kurseuro?>" <?if($kurseuro == $to) { echo "selected"; }?>>Евро</option>
<option value="<?=$kursrur?>" <?if($kursrur == $to) { echo "selected"; }?>>Российский рубль</option>
<option value="<?=$kursdollar?>" <?if($kursdollar == $to) { echo "selected"; }?>>Доллар США</option>
<option value="1" <?if(1 == $to) { echo "selected"; }?>>Украинская гривня</option>
</select>
сумма: <input class=control name="result" type="text" value="<?=$result_val?>" size=20 maxlength=16 readonly disabled>
</td>
</tr>
</table>
<input type=submit value="Пощитать">
</center>
</form>
$euro = $_post['euro'];
function delteg($string)
{
$keyp=0;
$out="";
for ($i=0; $i<strlen($string); $i++) {
if ($string[$i]=="<"):
$keyp=1;
endif;
if ($keyp==0):
$out.=$string[$i];
endif;
if ($string[$i]==">"):
$keyp=0;
endif;
}
$out = substr($out,1,strlen($out)-3);
return $out;
}
$num = array();
$char = array();
$nominal = array();
$name = array();
$value = array();
$n = 0;
$handle = fopen ("http://www.cbr.ru/scripts/XML_daily.asp", "r");
while (!feof ($handle)) {
$buffer = fgets($handle, 4096);
if (strpos($buffer, "Num")>0) ($num[$n]=delteg($buffer));
if (strpos($buffer, "Char")>0) ($char[$n]=delteg($buffer));
if (strpos($buffer, "Nominal")>0) ($nominal[$n]=delteg($buffer));
if (strpos($buffer, "Name")>0) ($name[$n]=delteg($buffer));
if (strpos($buffer, "Value")>0) :
$value[$n]=delteg($buffer);
$n++;
endif;
}
fclose ($handle);
for ($i=5; $i<6; $i++) {
$euro = $value[$i];
}
echo $euro;
?>