Пример #1
0
function read_udmz_lines($lines)
{
    $out = array();
    $title = 'PREAMBULE';
    $curr = array();
    $legenda = get_legenda($lines[0]);
    for ($i = 1; $i < count($lines); $i++) {
        if (trim($lines[$i]) == '########') {
            if (isset($curr)) {
                arrayarray($out, explode('.', $title), $curr);
                unset($curr);
            }
            if (known_section($lines[$i + 1], $out['PREAMBULE'])) {
                $title = trim($lines[$i + 1]);
                $curr = array();
                $legenda = get_legenda($lines[$i + 2]);
            }
            $i += 2;
        } else {
            if (isset($curr)) {
                add_record($curr, $legenda, $lines[$i]);
            }
        }
    }
    return $out;
}
Пример #2
0
function update_dates($xref, $ged_id, $gedrec)
{
    global $TBLPREFIX, $factarray, $gBitDb;
    if (strpos($gedrec, '2 DATE ') && preg_match_all("/\n1 (\\w+).*(?:\n[2-9].*)*(?:\n2 DATE (.+))(?:\n[2-9].*)*/", $gedrec, $matches, PREG_SET_ORDER)) {
        foreach ($matches as $match) {
            $fact = $match[1];
            if (($fact == 'FACT' || $fact == 'EVEN') && preg_match("/\n2 TYPE (\\w+)/", $match[0], $tmatch) && array_key_exists($tmatch[1], $factarray)) {
                $fact = $tmatch[1];
            }
            $date = new GedcomDate($match[2]);
            $gBitDb->query("INSERT INTO {$TBLPREFIX}dates (d_day,d_month,d_mon,d_year,d_julianday1,d_julianday2,d_fact,d_gid,d_file,d_type) VALUES (?,?,?,?,?,?,?,?,?,?)", array($date->date1->d, $date->date1->Format('O'), $date->date1->m, $date->date1->y, $date->date1->minJD, $date->date1->maxJD, $fact, $xref, $ged_id, $date->date1->CALENDAR_ESCAPE()));
            if ($date->date2) {
                $gBitDb->query("INSERT INTO {$TBLPREFIX}dates (d_day,d_month,d_mon,d_year,d_julianday1,d_julianday2,d_fact,d_gid,d_file,d_type) VALUES (?,?,?,?,?,?,?,?,?,?)", arrayarray($date->date2->d, $date->date2->Format('O'), $date->date2->m, $date->date2->y, $date->date2->minJD, $date->date2->maxJD, $fact, $xref, $ged_id, $date->date2->CALENDAR_ESCAPE()));
            }
        }
    }
    return;
}