public static function updateCities() { $data = array(); $DPD = new DPD_service(); try { $arCityList = $DPD->getCityList(); $i = 0; $errors; foreach ($arCityList as $item) { $item['cityName'] = iconv('windows-1251', 'utf-8', $item['cityName']); $item['regionName'] = iconv('windows-1251', 'utf-8', $item['regionName']); $sql = 'SELECT * FROM one_regions WHERE name LIKE \'%' . $item['regionName'] . '%\''; $res = mysql_query($sql); $row = mysql_fetch_assoc($res); print $row['id'] . ' ' . $row['name'] . ' ' . $item['regionName'] . '<br>'; print $item['cityName'] . '<br><hr>'; $sql = 'SELECT * FROM one_regions WHERE name LIKE \'%' . $item['cityName'] . '%\''; $res = mysql_query($sql); $city = mysql_fetch_assoc($res); if (!$city) { $sql = ' INSERT INTO one_regions SET parent=\'' . $row['id'] . '\', name=\'' . $item['cityName'] . '\', cityId=\'' . $item['cityId'] . '\', visible=1 '; mysql_query($sql); } /*$sql=' UPDATE one_regions SET regionCode=\''.$item['regionCode'].'\' WHERE id='.$row['id'].' '; mysql_query($sql);*/ if (!$row) { $i++; $errors[] = $item['regionName']; } } print 'Ошибок :' . $i; print '<pre>'; print_r($errors); } catch (Exception $e) { print '<pre>'; print_r($e); } }
/** * Парсер объекта в массив (рекурсия) * * @access private * @param object $obj Объект * @param integer $isUTF Флаг необходимости конвертирования строк из UTF в WIN (0|1), по-дефолту "1" - конвертить * @param array $arr Внутренний cлужебный массив для обеспечения рекурсии * @return array */ private function _parceObj2Arr($obj, $isUTF = 1, $arr = array()) { $isUTF = $isUTF ? 1 : 0; if (is_object($obj) || is_array($obj)) { $arr = array(); for (reset($obj); list($k, $v) = each($obj);) { if ($k === "GLOBALS") { continue; } $arr[$k] = DPD_service::_parceObj2Arr($v, $isUTF, $arr); } return $arr; } elseif (gettype($obj) == 'boolean') { return $obj ? 'true' : 'false'; } else { // конверт строк: utf-8 --> windows-1251 if ($isUTF && gettype($obj) == 'string') { $obj = iconv('utf-8', 'windows-1251', $obj); } return $obj; } }