Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Распарсить страничку 
:(
    Опции темы
Black_leopard
Дата 15.3.2007, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 18.10.2006

Репутация: нет
Всего: нет



Добрый вечер!
Решил попробовать вытащить с сайта ЦБ России состояния валют, вот url
http://www.investbank.ru/companies/val_mar...date=15.03.2007
но у меня ничего не выходит, подскажите пожалуйста как это можно сделать, на выходе охото получить что-то типа
Array (
    ["USD"] => 
               Array (
                   ["Name"] => Доллар США
                   ["Kol"] => Количество
                   ["Price"]=>Стоимость 
              )
    ....
)

 ! 
PARROT
Перед постингом своих сообщений, выбирайте подходящий форум!


Это сообщение отредактировал(а) PARROT - 15.3.2007, 19:59
PM MAIL   Вверх
gta4kv
Дата 15.3.2007, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 1
Всего: 91



Ты покажи как пробывал, может что-то просто не правильно? 
PM MAIL   Вверх
Black_leopard
Дата 15.3.2007, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 18.10.2006

Репутация: нет
Всего: нет



Код

$fp = fopen("http://www.investbank.ru/companies/val_mar...date=15.03.2007", "r") or die("File open error");
    $num = 0;
    $valuta = array();
    while (!feof($fp)) {
        $line = fgets($fp, 1024);
        $line = trim($line);
        if (strpos($line, "<tr class=tablebody>") !== false) {
            $pos_home = strpos($line, "<tr class=tablebody>") + strlen("<tr class=tablebody>");
            $pos_end = strpos($line, "</tr>", $pos_home);
            $line = substr($line, $pos_home, $pos_end);
            $line = str_replace("<td>", "|", $line);
            $line = str_replace("</td>", "", $line);
            $line = str_replace("</tr>", "|", $line);
            $num ++;
            for ($i = 0; $i < 6; $i ++) {
                $name = substr($line, strpos($line, "|", 0)+1, strpos($line, "|", 1)-1);
                $line = substr($line, strlen($name)+1);
                $valuta[$num][$i] = $name;
            }            
        }
    
    }

    echo '<pre>';
    print_r($valuta);
    echo '</pre>';


Сделал таким образом, но мне почему-то этот способ не очень нравится

Это сообщение отредактировал(а) Black_leopard - 15.3.2007, 20:30
PM MAIL   Вверх
-=Ustas=-
Дата 16.3.2007, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 6
Всего: 69



Цитата(Black_leopard @  15.3.2007,  20:29 Найти цитируемый пост)
Сделал таким образом, но мне почему-то этот способ не очень нравится

Еще бы. Самый простой способ
Код

<?php

preg_match_all( '#\<tr\s+class\=tablebody\>\<td\>(.*)\<\/td\>\<td\>(.*)\<\/td\>\<td\>(.*)\<\/td\>\<td\>(.*)\<\/td\>\<td\>(.*)\<\/td\>\<td\>(.*)\<\/td\>\<\/tr\>#isU', $content, $currency );

echo '<pre>';
print_r($currency);

?>


Добавлено @ 08:47 
А вообще, html парсить - это не правильно (всмысле тебе постоянно нужно будет следить за версткой) Лучше ищи экспорты XML и ими пользуйся, например http://www.cbr.ru/scripts/XML_daily.asp


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0440 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.