0 - одномерный
1 - двумерный массив @return array $return_array Нормализованный массив */ function db_rus($array, $type = 1) { return $array; /*$return_array = Array(); if(!is_array($array)) return $return_array; if($type == 1) { foreach($array as $key => $value) { foreach($value as $k => $v) $return_array[$key][iconv("windows-1251", "utf-8", $k)] = $v; } } elseif($type == 0) foreach($array as $key => $value) $return_array[iconv("windows-1251","utf-8",$key)] = $value; return $return_array;*/ } /*! @brief Преобразование денежного формата. @details Преобразуем к денежному формату:
1) Отсекаем дробную часть, если она равна нулю (132.0000 -> 132) или входной параметр $fract = false
2) Приводим к формату с точностью в 2 знака, если дробная часть не равна нулю (132.1500 -> 132.15) @param float $money Число, представляющую собой сумму @param bool $fract Предикат, определяющий отсекать или нет дробную часть, даже если она равна 0 (false - отсекаем дробную часть, true - оставляем дробную часть, даже в случае если она равна 0) @return string $money строка, преобразованная к денежному формату */ function convert_money($money, $fract = false) { $fraction = $money - floor($money); if($fraction > 0 || $fract == true) return number_format($money, 2, ',', ' '); else return number_format(floor($money), 0, ',', ' '); } /*! @brief Поиск значения в подмассивах @details Поиск значения в подмассивах @param integer|string|boolean $needle Искомое значение @param array $haystack Массив, в котором производится поиск @param string|integer $column_for_search Поле, по которому производится поиск @return integer|boolean $current_key Возвращает ключ, по которому можно обратиться к искомому значению, либо возвращает false, если ничего не найдено в подмассивах */ function recursive_array_search($needle, $haystack, $column_for_search) { foreach($haystack as $key => $value) { $current_key=$key; if(($needle === $value && $current_key == $column_for_search) || (is_array($value) && recursive_array_search($needle, $value, $column_for_search) !== false)) return $current_key; } return false; } /*! @brief Замена тегов @details Замена тегов @param string $text Текст, в котором надо заменить теги @param array $tags Массив тегов, которые необходимо вырезать @return string $text Текст с вырезанными тегами (текст в тегах остается) */ function strip_selected_tags($text, $tags = array()) { $args = func_get_args(); $text = array_shift($args); $tags = func_num_args() > 2 ? array_diff($args,array($text)) : (array)$tags; foreach($tags as $tag) { while(preg_match('/<'.$tag.'(|\W[^>]*)>(.*)<\/'. $tag .'>/iusU', $text, $found)) $text = str_replace($found[0],$found[2],$text); } return preg_replace('/(<('.join('|',$tags).')(|\W.*)\/>)/iusU', '', $text); } /*! @brief Обработка ошибок при работе с БД и выдача дебага пользователю @details Обработка ошибок при работе с БД и выдача дебага пользователю */ function debug_db_error($debug_msg = '') { global $registry; // Генерация уникального GUID с ошибкой $GUID = sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X', mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(16384, 20479), mt_rand(32768, 49151), mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535)); $template = new Template($registry); $registry->set('template', $template); file_put_contents(SITE_PATH.'/errors_db.txt', 'Произошла ошибка при работе с БД в '.$debug_msg.' | GUID ошибки: '.$GUID.' | Дата: '.date('d.m.Y H:i:s').' | '.'IP:'.$_SERVER['REMOTE_ADDR']."\r\n", FILE_APPEND); header('HTTP/1.1 503 Service Temporarily Unavailable'); header('Status: 503 Service Temporarily Unavailable'); $registry['template']->set('GUID', $GUID); $registry['template']->show('503', 'system'); exit; } /*! @brief Стартовая функция движка @details Стартовая функция движка (подключение к БД, генерация и валидация cookie для корзины) */ function start() { global $registry; try { $options = array(PDO::SQLSRV_ATTR_ENCODING=>PDO::SQLSRV_ENCODING_UTF8, "CharacterSet" => "UTF-8"); // $db = new PDO("sqlsrv:Server=192.168.0.44;Database=TradeTest2", 'sa', '7vz54xmm4ev2', $options); // Подключаемся к базе $db = new PDO("sqlsrv:Server=192.168.0.44;Database=TradeTest2", 'service_web_kipservis_prod', '4z7mevQ7Ip', $options); // Подключаемся к базе $registry->set('db', $db); } catch(PDOException $e) { $db = false; debug_db_error(__FILE__.' - '.__LINE__); } } if((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443){ $protocol = 'https://'; }else{ $protocol = 'http://'; } $url = $protocol.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; $urlend = strrpos($url, '?', -1); // Находим и удаляем все параметры (номер страницы, параметры фильтра и тд.) if($urlend) { $url = substr($url, 0, $urlend); } if(mb_substr($url, -1) == '/'){ // Тут оставляем, если ссылки на сайте не заканчиваются на /, либо удаляем, если заканчиваются на /. $url = substr($url, 0, -1); } ?>