За последние 24 часа нас посетили 52597 программистов и 1764 робота. Сейчас ищут 786 программистов ...

Парсер курса Валют.

Тема в разделе "Прочие вопросы по PHP", создана пользователем Kocapb, 5 июн 2010.

  1. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    Здравствуйте, написал парсер для сайта http://www.ligovka.ru/
    Код функции:
    PHP:
    1.  
    2. function exchange_rates($currency)
    3. {
    4.   if($currency == 'dollar')
    5.   {
    6.     $content = file_get_contents('http://ligovka.ru/');
    7.     $pos = strpos($content, '<td class="down"><a href="/detailed/31.html">');
    8.     $content = substr($content, $pos);
    9.     $pos = strpos($content, '</a></td>');  
    10.     $content = substr($content, 0, $pos);
    11.     return substr($content, 45, 5);
    12.   }
    13.   if($currency == 'euro')
    14.   {
    15.     $content = file_get_contents('http://ligovka.ru/');
    16.     $pos = strpos($content, '<td class="down"><a href="/detailed/32.html">');
    17.     $content = substr($content, $pos);
    18.     $pos = strpos($content, '</a></td>');  
    19.     $content = substr($content, 0, $pos);
    20.     return substr($content, 45, 5);
    21.   }
    22.   if($currency == 'euro/usd')
    23.   {
    24.     $content = file_get_contents('http://ligovka.ru/');
    25.     $pos = strpos($content, '<td></td><td class="down"><a href="/detailed/42.html">');
    26.     $content = substr($content, $pos);
    27.     $pos = strpos($content, '</a></td>');  
    28.     $content = substr($content, 0, $pos);
    29.     return substr($content, 54, 5);
    30.   }    
    31. }
    Вывод:
    PHP:
    1.  
    2. echo "USD: ".$currency = exchange_rates('dollar')."<br>";
    3. echo "EURO: ".$currency = exchange_rates('euro')."<br>";
    4. echo "EURO/USD: ".$currency = exchange_rates('euro/usd')."<br>";
    5.  
    Но вот проблема, время загрузки в районе 3 сек. Как можно ускорить этот процесс и какие были допущены ошибки в написании данного парсера.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а смысл? 3 сек - норм может быть для этого сайта.
    а может для вашего хостинга.

    а зачем? вы хотите менять курс ежесекундно?
     
  3. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    данную функцию я прикрепил к внутренней программе, которую мы используем во внутренней сети.
    И каждый раз при ее вызове приходится ждать 3-4 сек.
    Я как максималист, хотел бы не много ускорить работу данного приложения.
    Может быть прибегнуть к JQuery? Чтобы один блок тогда так долго тупил ?
    Допустим блок:
    HTML:
    1.  
    2. <div class="rates" id="rates">
    3.   echo "USD: ".$currency = exchange_rates('dollar')."<br>";
    4.   echo "EURO: ".$currency = exchange_rates('euro')."<br>";
    5.   echo "EURO/USD: ".$currency = exchange_rates('euro/usd')."<br>";  
    6. </div>
    7.  
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    можно просто обновлять раз в 15 минут и записывать в базу или файл. а функцию уже направлять туда. быстродействие будет охохо =)
     
  5. Kocapb

    Kocapb Активный пользователь

    С нами с:
    10 июл 2008
    Сообщения:
    169
    Симпатии:
    0
    Ок спс.
     
  6. Superk

    Superk Активный пользователь

    С нами с:
    5 фев 2010
    Сообщения:
    32
    Симпатии:
    0