Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » ICQ | ICQ Lite (Часть 2)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

staley

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
<?php
$me = "ВАШ НИК";
 
function split_float(&$num)
{
    $parts = explode(".", $num);
    $num = (float)".$parts[1]";
    return (int)$parts[0];
}
 
$db = new PDO("sqlite:Messages.qdb");
 
$users = array();
foreach ($db->query("select * from Users") as $row)
    $users[$row['userId']] = $row['name'];
 
if (!is_dir("res")) mkdir("res");
foreach ($users as $id => $name) {
    $file = fopen("res/$id.txt", "w");
    foreach ($db->query("select p.userId,m.* from Messages m inner join Participants p on m.participantsHash=p.participantsHash WHERE m.fromUser=$id OR p.UserId=$id order by date") as $row) {
        $dir = $row['fromUser'] ? '<' : '>';
        $user = $row['fromUser'] ? iconv("UTF-8", "Windows-1251", $name) : $me;
     
        $f = $row['date'];
        $d = (split_float($f) - 25569) * 86400;
        $f = $f * 24;
        $d += floor(split_float($f)) * 3600;
        $f = $f * 60;
        $d += floor(split_float($f)) * 60;
        $f = $f * 60;
        $d += floor(split_float($f));
        if (!date("I", $d)) $d += 3600;
        $date = date("H:i:s d/m/Y", $d);
 
        $msg = iconv("UTF-8", "Windows-1251", $row['subject']);
        if (strlen($msg) > 250) {
            $d = unpack("Llen", substr($row['data'], 52, 4));
            $s = substr($row['data'], 56, $d['len'] - 2);
            $msg = "";
            for ($i=0; $i<strlen($s); $i += 2)
                $msg .= ord($s[$i + 1]) == 0 ? $s[$i] : iconv("UTF-16LE", "Windows-1251", substr($s, $i, 2));
            $msg = preg_replace("@<img alt=\"(\S+)\" src=\"aol[^>]+/>@", "\\1", $msg);
            $msg = str_replace("<br/>", "\r\n", $msg);
            $msg = html_entity_decode(strip_tags($msg));
        }
        fwrite($file, <<<EOT
--------------------------------------$dir-
$user ($date)
$msg
 
 
EOT
        );
    }
    fclose($file);
}
?>

Всего записей: 643 | Зарегистр. 05-01-2003 | Отправлено: 20:45 02-07-2009 | Исправлено: staley, 12:30 03-07-2009
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » ICQ | ICQ Lite (Часть 2)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru