#!/usr/bin/php
2) {
print "Usage: ".$argv[0]." iPhone-SMS-DB (Usually 3d0d7e5fb2ce288813306e4d4636395e047a3d28.*)\n";
exit -1;
}
# Add numbers you want to select for export
$selectAddress = [
];
$DBfile = $argv[1];
if (! is_readable($DBfile)) {
print "File $DBfile is not readable!\n";
exit -2;
}
try {
$sqlite = new SQLite3($DBfile);
} catch (Exception $exception) {
echo '
There was an error connecting to the database!
';
echo $exception->getMessage();
exit -3;
}
$query = <<query($query);
if (!$sqliteResult) {
// the query failed and debugging is enabled
echo "There was an error in query: $query\n";
echo $sqlite->lastErrorMsg();
exit -4;
}
$smses = array();
while ($record = $sqliteResult->fetchArray()) {
$sms = array();
$ts = $record['Date'] / 1000000000;
$ts += strtotime('2001-01-01 00:00:00 UTC');
$sms['Datum'] = date('D Y-m-d H:i:s', $ts);
$sms['Date'] = $record['Date'];
$sms['is_from_me'] = $record['is_from_me'];
$sms['Contact'] = $record['Contact'];
$sms['text'] = $record['text'];
$sms['service'] = $record['service'];
$smses[] = $sms;
}
$sqliteResult->finalize();
$sqlite->close();
usort($smses, function ($a, $b) {
return $a['Date'] <=> $b['Date'];
});
print "\n";
print "\n";
print "\n";
foreach ($smses as $key => $sms) {
if (count($selectAddress) > 0 && !in_array($sms['Contact'], $selectAddress)) {
continue;
}
$body = $sms['text'];
$body = str_replace('&', '&', $body);
$body = str_replace('"', '"', $body);
$body = str_replace("\n", '
', $body);
print ' ';
print "\n";
}
print "\n";