loadHTMLFile(__DIR__.'/../resources/raw.html', \LIBXML_NOERROR); /** @var \Zhineng\Region\Build\RegionHandler */ $handlers = [ $nameHandler = new NameHandler, $topLevelHandler = new TopLevelHandler, $relationshipHandler = new RelationshipHandler, ]; $count = 0; $rows = $doc->getElementsByTagName('tr'); foreach ($rows as $row) { $columns = $row->getElementsByTagName('td'); $columnCode = $columns->item(1); $columnName = $columns->item(2); if (! $columnCode instanceof \DOMElement) { continue; } if (! $columnName instanceof \DOMElement) { continue; } $code = mb_trim($columnCode->textContent); if (! is_numeric($code)) { continue; } $name = rtrim(mb_trim($columnName->textContent), '*'); $count++; foreach ($handlers as $handler) { $handler->handle($code, $name); } } printf('- Export name map'.PHP_EOL); $nameHandler->export(__DIR__.'/../resources/names.php'); printf('- Export top-level list'.PHP_EOL); $topLevelHandler->export(__DIR__.'/../resources/top-levels.php'); printf('- Export relationships'.PHP_EOL); $relationshipHandler->export(__DIR__.'/../resources/relationships.php'); printf('- Done. Processed %d regions.'.PHP_EOL, $count);