ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Скрипт курса валют
  #1  
Старый 01.08.2008, 14:44
Аватар для mff
mff
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме:
5866479

Репутация: 1809


Отправить сообщение для mff с помощью ICQ
Question Скрипт курса валют

Помогите со скиптом курса валют! Он работает, но бывает подглючивает и тормозит загрузку страницы. Не могу найти багу
PHP код:
<?php
$content 
get_content(); 
$pattern "#<Valute ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i"
preg_match_all($pattern$content$outPREG_SET_ORDER); 
$dollar ""
$euro ""
foreach(
$out as $cur){ 
    if(
$cur[2] == 840$dollar str_replace(",",".",$cur[4]); 
    if(
$cur[2] == 978$euro   str_replace(",",".",$cur[4]); 

echo
'<table cellpadding="0" cellspacing="0">
<tr>
<td width="50%">Доллар: </td>
<td><B>'
.$dollar.'</B> руб.</td>
</tr>
<tr>
<td width="50%">Евро: </td>
<td><B>'
.$euro.'</B> руб.</td>
</tr></table>'
;
function 
get_content(){ 
    
$date date("d/m/Y"); 
    
$link "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date"
    
$fd = @fopen($link"r"); 
    
$text=""
    if(!
$fd) echo "Запрашиваемая страница не найдена"
    else{ 
        while(!
feof ($fd)) $text .= fgets($fd4096); 
    }  
    
fclose ($fd); 
    return 
$text

?>
Спасибо!
 
Ответить с цитированием

  #2  
Старый 01.08.2008, 14:49
Аватар для geezer.code
geezer.code
Reservists Of Antichat - Level 6
Регистрация: 22.01.2007
Сообщений: 616
Провел на форуме:
7452489

Репутация: 1359


По умолчанию

лагать он может изза того што ты берешь данные с другого сайта. то есть сервер сначала ее скачивает а потом отдает тебе.
 
Ответить с цитированием

  #3  
Старый 01.08.2008, 14:51
Аватар для mff
mff
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме:
5866479

Репутация: 1809


Отправить сообщение для mff с помощью ICQ
По умолчанию

Это понятно, но может можно както оптимизнуть? Или есть у кого более стабильный скриптец? Спасибо!
 
Ответить с цитированием

  #4  
Старый 01.08.2008, 14:57
Аватар для geezer.code
geezer.code
Reservists Of Antichat - Level 6
Регистрация: 22.01.2007
Сообщений: 616
Провел на форуме:
7452489

Репутация: 1359


По умолчанию

имхо ... я не пхп программист. но вроде тут и так всьо просто. штобы сервер не так тормозил могу предложить такую схему.
вынести это в отдельный скрипт. а на страницу подгружать аяксом. тогда он не будет тормозить остальную страницу.
 
Ответить с цитированием

  #5  
Старый 01.08.2008, 15:02
Аватар для mff
mff
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме:
5866479

Репутация: 1809


Отправить сообщение для mff с помощью ICQ
По умолчанию

Вот! Это уже лучше! Спасибо geezer.code, хороший совет!
 
Ответить с цитированием

  #6  
Старый 01.08.2008, 15:05
Аватар для inlanger
inlanger
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме:
3326855

Репутация: 702


По умолчанию

Зачем аяксом? Просто кеш создай. А потом на кроне раз в час(например), обновляй этот кеш.
 
Ответить с цитированием

  #7  
Старый 01.08.2008, 15:07
Аватар для mff
mff
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме:
5866479

Репутация: 1809


Отправить сообщение для mff с помощью ICQ
По умолчанию

inlanger подскажи как это реализовать?
 
Ответить с цитированием

  #8  
Старый 01.08.2008, 15:15
Аватар для inlanger
inlanger
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме:
3326855

Репутация: 702


По умолчанию

То, что грабишь - не на страницу выдавай, а записывай в файл. И делай это в отдельном скрипте.
А на странице - читай с файла.

Таким образом, страница будет открываться моментом, так как она читает не с удалённого сервера, а из файла.

А скрипт №1... Можешь руками его обновлять, а можешь на крон поставить
 
Ответить с цитированием

  #9  
Старый 01.08.2008, 15:18
Аватар для mff
mff
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме:
5866479

Репутация: 1809


Отправить сообщение для mff с помощью ICQ
По умолчанию

Сенкс inlanger! Идея тоже не плохая! Попробую так и сделать!
 
Ответить с цитированием

  #10  
Старый 02.08.2008, 05:01
Аватар для .::BARS::.
.::BARS::.
Постоянный
Регистрация: 13.10.2007
Сообщений: 347
Провел на форуме:
1345617

Репутация: 115
По умолчанию

PHP код:
<?
$host 
"wap.rbc.ru";
$path "/valuta_new/index.wml";
$fp fsockopen($host,80,$errno,$errstr,30);
if(!
$fp) echo"$errstr ($errno)<br />\n";
else{
$headers "GET $path HTTP/1.0\r\n";
$headers .= "Host: $host\r\n";
$headers .= "Accept: *\r\n";
$headers .="Accept-Charset: UTF-8\r\n";  // <<====
$headers .= "Accept-Charset: *\r\n";
$headers .= "Accept-Encoding: deflate\r\n";
$headers .= "Accept-Language: ru\r\n";
$headers .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.01\r\n\r\n";
fwrite($fp,$headers);
while(
$text != "\r\n"$text fgets($fp,128);
$text "";
while(!
feof($fp)) $text .= fgets($fp,4096);
fclose($fp);
}

$text=strstr($text,'<br/>');
$end=strstr($text,'<a href="http://wap.rbc.ru/valuta_new/cis.wml');
$text=str_replace($end''$text);
$replace1=array (
'<a href="http://wap.rbc.ru/valuta_new/dEUR.wml">EUR</a>',
'<a href="http://wap.rbc.ru/valuta_new/dGBP.wml">GBP</a>',
'<a href="http://wap.rbc.ru/valuta_new/dUSD.wml">USD</a>');
$replace2=array (
'EUR',
'GBP',
'USD');

$text=str_replace($replace1$replace2$text);
$data=date("d.m.Y");

echo 
"$data";
echo 
"$text";
?>
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
продам спам/флуд скрипт vp$ Разное - Покупка, продажа, обмен 45 08.02.2009 23:46
Ищу скрипт mlm пирамиды... Linuxoid PHP, PERL, MySQL, JavaScript 9 04.06.2008 12:50



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ