<?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); } ?> |