['run'] = &$this; $view->display('daxie_detail.htm'); } /** * 汇率查询栏目页 */ public function rates() { $_ENV['_theme'] = 'exchange'; // 获取搜索关键词 $keyword = R('keyword', 'G'); // 获取所有启用的货币列表 $currencies = $this->exchange_currency->get_active_list(); // 默认以USD为基准货币 $base_currency = 'USD'; $base_currency_info = null; // 查找基准货币信息 foreach ($currencies as $currency) { if ($currency['code'] == $base_currency) { $base_currency_info = $currency; break; } } // 准备汇率列表数据 $rates_list = array(); foreach ($currencies as $currency) { // 跳过基准货币本身 if ($currency['code'] == $base_currency) { continue; } // 如果有搜索关键词,进行过滤 if (!empty($keyword)) { $keyword_lower = strtolower($keyword); $name_match = stripos($currency['name'], $keyword) !== false; $code_match = stripos($currency['code'], $keyword_lower) !== false; if (!$name_match && !$code_match) { continue; } } // 获取汇率(从基准货币到目标货币) $rate = $this->exchange_rate->get_exchange_rate($base_currency, $currency['code']); if ($rate > 0) { // 计算反向汇率 $reverse_rate = 1 / $rate; // 获取该汇率记录的更新时间 $rate_update_time = date('m-d H:i'); try { $rate_record = $this->exchange_rate->get_rate($base_currency, $currency['code']); if ($rate_record && is_array($rate_record)) { $rate_data = reset($rate_record); if ($rate_data && isset($rate_data['update_time'])) { $rate_update_time = date('m-d H:i', $rate_data['update_time']); } } } catch (Exception $e) { // 如果查询失败,使用默认时间 } $rates_list[] = array( 'currency' => $currency, 'rate' => $rate, 'reverse_rate' => $reverse_rate, 'update_time' => $rate_update_time ); } } // 获取数据更新时间 - 查询USD到CNY的汇率记录 $update_time = date('Y-m-d H:i:s'); try { $rate_list = $this->exchange_rate->get_rate('USD', 'CNY'); if ($rate_list && is_array($rate_list)) { $rate_info = reset($rate_list); if ($rate_info && isset($rate_info['update_time'])) { $update_time = date('Y-m-d H:i:s', $rate_info['update_time']); } } } catch (Exception $e) { // 如果查询失败,使用当前时间 } // SEO设置 $seo = $this->exchange_seo->get_page_seo('rates_index'); $this->_cfg['titles'] = ($seo['title'] ? $seo['title'] . ' - ' : '汇率查询 - 实时汇率行情查询 - ') . $this->_cfg['webname']; $this->_cfg['seo_keywords'] = $seo['keywords'] ?: '汇率查询,实时汇率,汇率行情,外汇汇率'; $this->_cfg['seo_description'] = $seo['description'] ?: '提供全球主要货币的实时汇率查询服务,包括美元、欧元、英镑、日元等货币汇率'; $view = $this->view; $view->assign_value('cfg', $this->_cfg); $this->_assign_common_urls($view); $view->assign_value('base_currency', $base_currency); $view->assign_value('base_currency_info', $base_currency_info); $view->assign_value('rates_list', $rates_list); $view->assign_value('update_time', $update_time); $view->assign_value('keyword', $keyword); // 生成汇率转换URL模板(用于列表中的转换按钮) $converter_url_template = $this->_exchange_url('converter_detail', array( 'from' => '{from}', 'to' => '{to}', 'amount' => 1 )); $view->assign_value('url_converter_template', $converter_url_template); // 定义 $run 全局变量,供 block 标签使用 $GLOBALS['run'] = &$this; $view->display('rates_index.htm'); } /** * 将数字转换为中文大写金额 * @param float $number 数字金额 * @return string 中文大写金额 */ private function number_to_chinese($number) { $number = floatval($number); // 处理负数 $negative = false; if ($number < 0) { $negative = true; $number = abs($number); } // 数字对应的中文大写 $num_cn = array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); // 单位 $unit_cn = array('', '拾', '佰', '仟'); // 大单位 $big_unit_cn = array('', '万', '亿', '万亿'); // 分离整数和小数部分 $integer_part = floor($number); $decimal_part = round(($number - $integer_part) * 100); $result = ''; // 处理整数部分 if ($integer_part == 0) { $result = '零元'; } else { $integer_str = strval($integer_part); $integer_len = strlen($integer_str); $groups = ceil($integer_len / 4); $integer_str = str_pad($integer_str, $groups * 4, '0', STR_PAD_LEFT); $group_results = array(); for ($i = 0; $i < $groups; $i++) { $group = substr($integer_str, $i * 4, 4); $group_result = ''; $zero_flag = false; for ($j = 0; $j < 4; $j++) { $digit = intval($group[$j]); if ($digit == 0) { if (!$zero_flag && $group_result != '') { $group_result .= '零'; $zero_flag = true; } } else { $group_result .= $num_cn[$digit] . $unit_cn[3 - $j]; $zero_flag = false; } } // 去除末尾的零 $group_result = rtrim($group_result, '零'); if ($group_result != '') { $group_result .= $big_unit_cn[$groups - $i - 1]; $group_results[] = $group_result; } } $result = implode('', $group_results) . '元'; } // 处理小数部分 $jiao = floor($decimal_part / 10); $fen = $decimal_part % 10; if ($jiao == 0 && $fen == 0) { $result .= '整'; } else { if ($jiao > 0) { $result .= $num_cn[$jiao] . '角'; } elseif ($integer_part > 0) { $result .= '零'; } if ($fen > 0) { $result .= $num_cn[$fen] . '分'; } } // 处理负数 if ($negative) { $result = '负' . $result; } return $result; } } Lecms 3.0.3 错误

错误信息

错误位置

基本信息

程序流程

SQL

$_GET

$_POST

$_COOKIE

包含文件

其他信息