<?php
###################################################
## zValute ##
###################################################
## ##
## Автор: ZooM aka AHTOXA ##
## Дата выхода: ##
## Требования: PHP4, GD, allow_url_fopen = On ##
## Тип скрипта: Informer ##
## ##
## ##
###################################################
if(empty($_REQUEST['in'])){$_REQUEST['in']="";} // Если метод вывода пуст, значит он равен текту
if(empty($_REQUEST['val'])){$_REQUEST['val']="USD";}// Если валюта пуста,значит выводим курс американского доллара
switch ($_REQUEST['in']) {
default:
echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
echo "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n";
echo "<head>\n";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n";
echo "<title>zValute</title>\n";
echo "<style type=\"text/css\">\n";
echo "body{background-color: #EAEAEA;}\n";
echo "span.help{cursor:help;}\n";
echo "div.code{border:dashed 1px #000; background: #fffff5; font-family: \"Courier New\", Courier, monospace;
padding: 7px; margin: 0px 0px 1em; font-size: 90%;}\n";
echo "</style>\n";
echo "</head>\n";
echo "<body>\n";
echo "<div align=\"center\"><b>Описание скрипта:</b></div>\n";
echo "Скрипт <b>zValute</b> выводит текущий курс валют в виде текста или изображения.<br/>\n";
echo "<b>Требования к хостингу:</b> <span class='help' title='Надеюсь, понятно для чего'>PHP 4</span> , <span class='help' title='для вывода изображений'>Библиотека GD</span> , <span class='help' title='Для открытия файлов на другом сервере'>allow_url_fopen = On</span><br/><br/><br/>\n";
echo "<b>Инструкция по использованию скрипта zValute:</b><br/>\n";
echo "Для вывода курса валют текстом, необходимо прописать на необходимой PHP странице следующий код:<br/>\n";
echo '<div class=code><?php<br/>
$_REQUEST["val"]="USD"; //Трехбуквенный код валюты<br/>
$_REQUEST["in"]="text"; //Выводить текстом<br/>
include("valute/valute.php"); //Инклюдим файл<br/>
?></div><br/><br/>';
echo "Для вывода курса валют на изображение необходимо прописать на необходимой PHP (HTML,xHTML,WML) странице следующий код:<br/>\n";
echo '<div class=code><img src="valute/valute.php?in=img&amp;val=<b>USD</b>" alt="Курс валют"></div><br/>';
echo "Где <b>USD</b> заменяется на необходимую валютную трёхбуквенную комбинацию<br/>\n";
echo "Например:<br/>Изображение: <img src=\"valute.php?in=img&val=USD\" alt=\"Курс валют\"><br/><br/>\n";
echo "Текст:<br/>\n";
$_REQUEST["val"]="USD"; //Трехбуквенный код валюты
$_REQUEST["in"]="text"; //Выводить текстом
include("valute.php"); //Инклюдим файл
echo "<br/>Названия доступных валют:<br/>
AUD Австралийский доллар<br/>
GBP Фунт стерлингов Соединенного Королевства<br/>
BYR Белорусских рублей<br/>
DKK Датские кроны<br/>
USD Доллар США<br/>
EUR Евро<br/>
ISK Исландские кроны<br/>
KZT Казахские тенге<br/>
CAD Канадские доллары<br/>
CNY Китайский юань Жэньминьби<br/>
NOK Норвежские кроны<br/>
XDR СДР<br/>
SGD Сингапурский доллар<br/>
TRY Новая турецкая лира<br/>
UAH Украинские гривны<br/>
SEK Шведские кроны<br/>
CHF Швейцарский франк<br/>
JPY Японские йены<br/>
<br/>\n";
break;
case 'img':
$fh=@fopen('http://www.cbr.ru/scripts/XML_daily.asp', 'rt');
if ($fh)
{
while(!feof($fh)) @$data.=fread($fh,4096);
fclose($fh);
preg_match('#<CharCode>'.$_REQUEST['val'].'</CharCode>.*?<Value>(.*?)</Value>#si',$data,$data);
$data['0']=iconv("CP1251","UTF-8",$data['0']);
$data['0']=str_replace(chr(10),"",str_replace(chr(13),"",str_replace("","",$data['0'])));
$str=str_replace("<CharCode>".$_REQUEST['val']."</CharCode>","",$data['0']);
$str=str_replace("<Nominal>","",$str);
$str=str_replace("<Name>","",$str);
$str=str_replace("<Value>","",$str);
$str=str_replace("</Value>","",$str);
$str=str_replace("</Name>","|:|",$str);
$str=str_replace("</Nominal>","|:|",$str);
$arr=explode("|:|",$str);
$arr['0']=trim($arr['0']);
$arr['1']=trim($arr['1']);
$arr['2']=trim($arr['2']);
$text=$arr['0']." ".$arr['1']."= ".$arr['2']."рублей";
$count=strlen($text);
$ttfbox=imagettfbbox(12, 0, "trebucit.ttf",$text);
$width=$ttfbox['2']-$ttfbox['0']+25;
$gi = imageCreate($width,31);
$bg = imageColorAllocate($gi,255,255,255);
imageColorTransparent($gi,$bg);
$tx = imageColorAllocate($gi,25,2,228);
$w = imageSX($gi); // ширина рисунка
$h = imageSY($gi); // высота рисунка
imageFilledRectangle($gi,0,0,$w,$h,$bg);
$szf = 12; // размер шрифта
$ang = 0; // угол поворота строки
$font = "trebucit.ttf"; // файл шрифта
$sz = imageTTFBBox($szf,$ang,$font,$str);
$sdx = $sz[4]/2;
$sdy = ($sz[7]+$sz[3])/2;
imageTTFText($gi,$szf,$ang,$w/2-$sdx,$h/2-$sdy,$tx,$font,$text);
Header("Content-Type: image/png");
imagePng($gi);
}
else
{
echo( "Невозможно подключиться к серверу курса валют\n");
}
break;
case 'text':
$fh=@fopen('http://www.cbr.ru/scripts/XML_daily.asp', 'rt');
if ($fh)
{
while(!feof($fh)) @$data.=fread($fh,4096);
fclose($fh);
preg_match('#<CharCode>'.$_REQUEST['val'].'</CharCode>.*?<Value>(.*?)</Value>#si',$data,$data);
$data['0']=iconv("CP1251","UTF-8",$data['0']);
$data['0']=str_replace(chr(10),"",str_replace(chr(13),"",str_replace("","",$data['0'])));
$str=str_replace("<CharCode>".$_REQUEST['val']."</CharCode>","",$data['0']);
$str=str_replace("<Nominal>","",$str);
$str=str_replace("<Name>","",$str);
$str=str_replace("<Value>","",$str);
$str=str_replace("</Value>","",$str);
$str=str_replace("</Name>","|:|",$str);
$str=str_replace("</Nominal>","|:|",$str);
$arr=explode("|:|",$str);
$text=$arr['0'].$arr['1']." = ".$arr['2']."рублей";
$count=strlen($text);
echo $text;
}
else
{
echo( "Невозможно подключиться к серверу курса валют\n");
}
break;
}
?>