#!/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";