public static function createDatabase()
{
$ddl = file_get_contents('verbs.sql');
if (file_exists('verbs.db')) {
unlink('verbs.db');
}
$connection = new PDO('sqlite:verbs.db');
$connection->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);
$connection->exec($ddl);
$entries = simplexml_load_file('JMdict');
if ($entries !== false) {
$connection->beginTransaction();
$sql = 'INSERT INTO verbs (kanji, kana, type) VALUES (:kanji, :kana, :type)';
$statement = $connection->prepare($sql);
foreach ($entries as $entry) {
$poses = array_keys(get_object_vars($entry->sense->pos));
foreach ($poses as $pos) {
if (stripos($pos, 'v1') !== false || stripos($pos, 'v5') !== false || $pos == 'vz' || $pos == 'vk' || $pos == 'vn' || $pos == 'vr' || $pos == 'vs-s' || $pos == 'vs-i') {
$kanji = $entry->k_ele->keb;
$kana = $entry->r_ele->reb;
$type = str_replace('v', '', $pos);
$saved = $statement->execute(array(':kanji' => $kanji, ':kana' => $kana, ':type' => $type));
if ($saved === false) {
die('Could not save entry : ' . implode(' ', $statement->errorInfo()));
}
}
}
}
$connection->commit();
} else {
echo 'Could not open JMdict file' . PHP_EOL;
}
}