/** * 给 DB 类的 Import_XXX() 函数使用 * 返回 false,或者 array('columnNames','data') * @param string $fileName * @return array|bool */ public static function LoadCsvData($fileName) { /** * @var array $_CONFIG */ global $_CONFIG; if (!$fileName) { return false; } /** * @var resource $fp */ $fp = null; try { $fp = fopen($fileName, 'r'); /** * @var array $columnDescriptions * @var array $columnNames * @var array $data */ // 输入的格式: // 第一行为表标题(显示名称) // 第二行为对应的数据库列名 // 接下来每行都是数据 $bufferLength = 65536; $result = array(); function explodeCsv($string) { return explode(',', $string); } if (true) { if (feof($fp)) { fclose($fp); return false; } fgets($fp, $bufferLength); //$columnDescriptions = explodeCsv($ret); if (feof($fp)) { fclose($fp); return false; } $ret = fgets($fp, $bufferLength); $columnNames = explodeCsv($ret); if (feof($fp)) { fclose($fp); return false; } $ret = fgets($fp, $bufferLength); $data = array(); do { $data[] = explodeCsv($ret); if (feof($fp)) { break; } $ret = fgets($fp, $bufferLength); } while (true); } $result['columnNames'] = $columnNames; $result['data'] = $data; $result = util::ConvertCharsetGbkToUtf8($result, $_CONFIG['flags']['csv-is-in-gbk']); } catch (Exception $ex) { if ($fp) { fclose($fp); } die($ex->getMessage()); } // 阿里云用的是 PHP 5.2,不支持 finally = = if ($fp) { fclose($fp); } return $result; }
/** * @param array $a * @return FeedbackInfo */ private static function fillStudentFeedback(array $a) { global $_CONFIG; $si = new FeedbackInfo(); $a = util::ConvertCharsetGbkToUtf8($a, $_CONFIG['flags']['charset-hack']); $si->admissionID = trim($a['aid']); $si->studentName = trim($a['sname']); $si->studentNumber = trim($a['sno']); $si->dormNumber = trim($a['dormno']); $si->classNumber = trim($a['classno']); $si->adviserName = trim($a['advname']); return $si; }
} $db = new DB(); $db->Init(); switch ($m) { case 1: $data = $db->QueryGlobalStat(); break; case 2: $data = $db->QueryRegStatAfter($time); break; default: break; } $db->Uninit(); if ($m > 0) { $data = util::ConvertCharsetGbkToUtf8($data, $_CONFIG['flags']['charset-hack']); } /** * @param array $l2array * @param string $indexName * @param mixed $valueToFind * @return bool|int|string */ function __findIndexInL2Array($l2array, $indexName, $valueToFind) { foreach ($l2array as $k => $v) { if ($v[$indexName] == $valueToFind) { return $k; } } return false;