/**
 * HTML データを作成する。
 */
function update_html($trg, $lines)
{
    global $x0401;
    global $x0402;
    $tmp = PATH_TMP . "/" . preg_replace("/.*\\//", "", $trg);
    rmdirs(array($tmp));
    mkdirs(array($tmp));
    update_html_prefs($tmp);
    update_html_cities($tmp);
    update_html_meta($tmp);
    foreach ($x0402 as $code => $city_name) {
        update_html_detail($tmp, $code, $city_name, $lines);
    }
    log_info("Updated  : " . $tmp . "/??/???.html");
    move_data($tmp, $trg);
    return true;
}
fclose($t);
fclose($s);
/*
 * 郵便番号辞書(事業所)を出力する。
 */
$s = fopen(PATH_CSV . "/" . FIRM_OUT, "rb");
$t = fopen(PATH_TMP_IME_FIRM, "ab");
while ($cols = fgetcsv($s, 1024, ",")) {
    if (!isset($x0402[$cols[1]])) {
        continue;
    }
    fwrite($t, mb_convert_encoding(mb_convert_kana(substr($cols[0], 0, 3) . "-" . substr($cols[0], 3, 7) . "\t" . $x0401[substr($cols[1], 0, 2)] . $x0402[$cols[1]] . $cols[2] . $cols[3] . $cols[4] . "\t地名その他\r\n", "A", "UTF-8"), "Windows-31J", "UTF-8"));
}
fclose($t);
fclose($s);
move_data(PATH_TMP_IME_AREA, PATH_IME . "/" . date("YmdHis", filemtime(PATH_TMP_IME_AREA)) . PATH_IME_AREA);
move_data(PATH_TMP_IME_FIRM, PATH_IME . "/" . date("YmdHis", filemtime(PATH_TMP_IME_FIRM)) . PATH_IME_FIRM);
// 目次ページを更新する。
$tmp = PATH_TMP_IME . "/index.html";
$trg = PATH_IME . "/index.html";
$t = fopen($tmp, "wb");
eval(preg_replace(HTML_BEGIN, 'fwrite(\\$t, <<<EOP', preg_replace(HTML_END, "\nEOP\n);", IME_INDEX)));
fclose($t);
move_file($tmp, $trg);
log_info("Updated  : {$trg}");
rmdirs(array(PATH_TMP_IME));
/*
 * 処理完了
 */
log_info("End.");
exit(0);
/**
 * JSON データを作成する。
 */
function update_json()
{
    rmdirs(array(PATH_TMP_JSON));
    mkdirs(array(PATH_TMP_JSON, PATH_TMP_JSON_ZIP, PATH_TMP_JSON_PREF));
    if (!extract_json_zip()) {
        return false;
    }
    if (!fill_json_zip()) {
        return false;
    }
    if (!fill_json_prefs()) {
        return false;
    }
    if (!extract_json_city()) {
        return false;
    }
    if (!fill_json_pref()) {
        return false;
    }
    move_data(PATH_TMP_JSON, PATH_JSON);
    return true;
}