|
|
|
| В текстовом файле имеется таблица вида:
17.09 13:51</td><td>1171</td><td>3.537705</td><td>789765XXXX</td><td>XXXXXXXXXXX</td><td>beeline_moscow</td></tr>
17.09 14:30</td><td>1171</td><td>3.937085</td><td>789765XXXX</td><td>XXXXXXXXXXX</td><td>baikalwestcom</td></tr>
17.09 14:31</td><td>1171</td><td>2.680045</td><td>789765XXXX</td><td>XXXXXXXXXXX</td><td>megafon_povolzhye</td></tr>
17.09 14:56</td><td>1171</td><td>4.283401</td><td>789765XXXX</td><td>XXXXXXXXXXX</td><td>mts</td></tr>
.................
Первая колонка дата, вторая короткий номер,третья- комиссия... Нужно извлечь из этого файла все значения третьей колонки(комиссию) в переменные, чтобы все их суммировать.
Подскажите, как можно реализовать такое извлечение? | |
|
|
|
|
|
|
|
для: loneliness
(22.09.2008 в 21:14)
| | Не слышали такое слово БД?
С ней операции намного легче делать. | |
|
|
|
|
|
|
|
для: AcidTrash
(22.09.2008 в 21:59)
| | БД не слово, а аббревиатура. Я слышал и знаю много разных слов, уважаемый. Отнюдь не меньше Вас. Но это совершенно не имеет отношения к делу. Мне нужно не БД, не смотря на все ее удобства, а именно этот вариант реализовать. | |
|
|
|
|
|
|
|
для: Loneliness
(22.09.2008 в 22:08)
| | Ну хорошо,
попробуем так
<?php
$text="17.09 13:51</td><td>1171</td><td>3.537705</td><td>789765XXXX</td><td>XXXXXXXXXXX</td><td>beeline_moscow</td></tr>
17.09 14:30</td><td>1171</td><td>3.937085</td><td>789765XXXX</td><td>XXXXXXXXXXX</td><td>baikalwestcom</td></tr>
17.09 14:31</td><td>1171</td><td>2.680045</td><td>789765XXXX</td><td>XXXXXXXXXXX</td><td>megafon_povolzhye</td></tr>
17.09 14:56</td><td>1171</td><td>4.283401</td><td>789765XXXX</td><td>XXXXXXXXXXX</td><td>mts</td></tr>";
preg_match_all("#</td><td>.*?</td><td>(.+?)</td>#",$text,$out);
for($i=0; $i<count($out[1]); $i++){
$res += $out[1][$i];
}
print $res;
?>
|
P.S. Из файла не пробовал, возможно нужно будет добавить модификатор s. | |
|
|
|
|
|
|
|
для: AcidTrash
(22.09.2008 в 22:32)
| | в файле, надо надеяться, строка будет не только закрываться, но и открываться :) | |
|
|
|
|
|
|
|
для: Trianon
(22.09.2008 в 22:46)
| | >в файле, надо надеяться, строка будет не только закрываться, но и открываться :)
Я и сказал, что с файлом не пробовал. | |
|
|
|
|
|
|
|
для: AcidTrash
(22.09.2008 в 22:32)
| | for($i=0; $i<count($out[1]); $i++){
$res += $out[1][$i];
}
<?php
$res = array_sum($out[1]);
?>
|
| |
|
|
|
|
|
|
|
для: BinLaden
(22.09.2008 в 22:57)
| | Хм. Посарказмичали? :)
Но только разницы в данном случае никакой, просто уж, что первое в голову пришло. | |
|
|
|
|
|
|
|
для: AcidTrash
(22.09.2008 в 23:14)
| | странно что из таблицы уже кто-то вырезал пару рядов )
а так зависит ещё могут-ли быть пробелы в ячейке , и что может быть в остальных рядах
если всё так как здесь то можно даже так например
<?
$sum = 0;
function tabsum($match) {
global $sum;
$sum += $match[1];
return $match[1] . '<br/>';
}
$txt = preg_replace_callback('#^(?>[^<]+</td><td>){2}([^<]+).+$#m', 'tabsum', $txt);
echo $txt . '<hr/>' . $sum;
|
| |
|
|
|
|
|
|
|
для: AcidTrash
(22.09.2008 в 23:14)
| | > Посарказмичали?
* Записывает слово в словарик *
> Но только разницы в данном случае никакой
Синус через ряды считаете или как?
* В сторону * Вроде советуешь человеку более оптимальное решение, а он пытается доказать, что он не баран... | |
|
|
|
|
|
|
|
для: BinLaden
(23.09.2008 в 17:58)
| | Хотя получается обратное | |
|
|
|
|
|
|
|
для: mihdan
(25.09.2008 в 14:21)
| | Что имеете ввиду? | |
|
|
|
|
|
|
|
для: BinLaden
(25.09.2008 в 17:20)
| | >Вроде советуешь человеку более оптимальное решение, а он пытается доказать, что он не баран
Но по его постам делаем вывод, что он все же баран, нежелающий принять новых и правильных решений | |
|
|
|
|
|
|
|
для: loneliness
(22.09.2008 в 21:14)
| | Вариант без регулярных выражений.
<?php
$file = 'data.txt';
$summ = 0;
$fp = fopen($file, 'r');
while (!feof($fp))
{
$row = explode('</td><td>', fgets($fp));
$summ += (float)$row[2];
}
fclose($fp);
echo $summ;
?>
|
| |
|
|
|
|
|
|
|
для: Drago
(23.09.2008 в 01:11)
| | Спасибо всем за отклик. Вы мне реально помогли, благодарю! | |
|
|
|