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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вытащить определенный текст из таблицы 
:(
    Опции темы
Joes
Дата 30.12.2005, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Всех с наступающим!
Нужно выдрать курсы валют с определенного сайта.
Стоит такая задача: Вытащить из <tr> ( в котором, допустим, присутствует текст "Доллар" ) весь текст, за исключением тегов...
т.е. из

Код

<tr class="fdsfsd" align="fdsfs"><td class="dsadsa">Доллар</td><td></td><td class="dsad"></td><td class="dsadas">USD</td><td>1000</td></tr>


надо вытащить USD 1000
PM MAIL   Вверх
Illuminaty
Дата 30.12.2005, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


Профиль
Группа: Комодератор
Сообщений: 1238
Регистрация: 19.3.2005
Где: Россия, Казань

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



Может через DOM делать?
Подробнее об этом
PM MAIL ICQ   Вверх
Mal Hack
Дата 30.12.2005, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Ну DOM тут все-таки не поможет...
preg_match_all( "#<tr>((?:.+?)доллар(?:.+?))</tr>#is" );
А потом пройтись по массиву strip_tags.
PM ICQ   Вверх
o.s.a.
Дата 1.1.2006, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


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

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



Зная задачу Joes подробнее привожу свой вариант
Код

$fp = fsockopen("www.nbu.com", 80, $errno, $errstr, 30);
$str = "";
if (!$fp) {
    echo "$errstr ($errno)<br>\n";
} else {
    fputs ($fp, "GET http://www.nbu.com/news/currency/ HTTP/1.0\n\r\n\r");
    while (!feof($fp)) {
        $str .= fgets($fp, 128);
    }
preg_match_all("#(?<=<b>)(\d+\.\d{2})(?=</b>)#", $str, $matches);

echo "<pre>";
print_r($matches[0]);
echo "</pre>";
    fclose ($fp);
}

А т.к. массив статический, то по индексу возьмешь то, что нужно


--------------------
Не могу стоять, пока другие работают, пойду полежу.
PM MAIL ICQ   Вверх
Joes
Дата 2.1.2006, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



o.s.a.
пасиб, но уже сделал... вчера решил доучить реги:
Код

    preg_match_all("/(?<!<br>)\d*\,\d*(?=<br>)/is", $html, $matches);

кста, вместо fopen, юзай лучше file - мороки меньше.


PM MAIL   Вверх
Mal Hack
Дата 2.1.2006, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Joes а ты уверен, что при таком варианте у тебя пройдуч через паттерн дробные числа?
Я щас не тестил, но вроде бы, не должны пройти через \d.
PM ICQ   Вверх
o.s.a.
Дата 2.1.2006, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Xo4y B MocKBy
**


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

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



Mal Hack, ему нужно вытащить курсы валют вида 1024,26
Так что все у Joes работает, НО все таки лучше открывать файл не через
Цитата(Joes @ 2.1.2006, 12:07)
вместо fopen, юзай лучше file - мороки меньше.

а с помощью сокетов или curl


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


 




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


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

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