public static function generate($file) { extract(GeoName::$files[$file]); $srcFile = PhpArray::fetch($src, $srcFile); echo sprintf("-> Parsing %s\n", basename($srcFile)); $items = array(); $fp = fopen($srcFile, "r"); $i = 0; while (($row = fgetcsv($fp, 0, "\t")) !== false) { if (count($row) == 1 || preg_match('/^#/', $row[0])) { continue; } $i++; $item = call_user_func(array('GeoName', $map), $row, $i); if ($item) { $items[] = $item; } } echo sprintf("-> Writing %s\n", $file); $out = PhpArray::generate(compact('src', 'items')); file_put_contents(ROOT . '/' . $file, $out); }