/** * Возвращает JSON-представление данных (безопасный режим) * @param mixed $obj Массив или объект, который необходимо преобразовать. * @return string Возвращает JSON закодированную строку (string) в случае успеха или FALSE в случае возникновения ошибки. */ function json_safe_encode($obj) { $nc_core = nc_Core::get_object(); if ($nc_core->NC_UNICODE) { return json_encode($obj); } return json_encode(iconv_deep($nc_core->NC_CHARSET, 'utf-8', $obj)); }
//last step of import = fill database with new content //configuration finished - update database if (isset($_POST["do_excel_import"]) && isset($_POST["filename"]) && isset($_POST["update_column"])) { if (CONF_BACKEND_SAFEMODE) { Redirect(ADMIN_FILE . "?dpt=catalog&sub=excel_import&safemode=yes"); } @set_time_limit(0); //import file content if (preg_match("/^(.+?)\\.csv(\\.(bz2|gz))?\$/", $_POST["filename"], $matches)) { if (isset($matches[2]) && $matches[3] == 'gz') { $data = myfgetcsvgz($_POST["filename"], $delimiter); } else { $data = myfgetcsv($_POST["filename"], $delimiter); } } $data = iconv_deep("windows-1251", "utf-8", $data); if (!count($data)) { die(ERROR_CANT_READ_FILE); } $res = imReadImportConfiguratorSettings(); $db_association = $res["db_association"]; $dbcPhotos = $res["dbcPhotos"]; $dbc = $res["dbc"]; $updated_extra_option = $res["updated_extra_option"]; //get update column $uc = $dbc[$_POST["update_column"]]; if (!strcmp($uc, "not defined")) { $smarty->assign("excel_import_result", "update_column_error"); //go to the previous step $proceed = 1; $file_excel = "";
function iconv_deep($e1, $e2, $value) { if (is_array($value)) { $item = null; foreach ($value as &$item) { $item = iconv_deep($e1, $e2, $item); } unset($item); } else { if (is_string($value)) { $value = mb_convert_encoding($value, $e2, $e1); } } return $value; }