config->item('encryption_key'); } $data = openssl_encrypt($data, 'aes-128-ecb', $key, OPENSSL_RAW_DATA); return base64_encode($data); } /** * AES 128 ecb 解密 与java加密保持一致 * @param $data 解密字符串 * @param $key 加密key * @return string 解密串 */ function aes_decrypt($data, $key='') { if(!$key){ $key = get_instance()->config->item('encryption_key'); } $encrypted = base64_decode($data); return openssl_decrypt($encrypted, 'aes-128-ecb', $key, OPENSSL_RAW_DATA); } /** * 多维数组键值下划线转换为驼峰 * @param $arr * @return array */ function array_change_line_to_hump($arr){ if(!is_array($arr)){ return $arr; } $tem = []; foreach ($arr as $k=>$v){ if(is_array($v)){ $tem[line_to_hump($k)] = array_change_line_to_hump($v); }else{ $tem[line_to_hump($k)] = $v; } } return $tem; } /** * 驼峰转下划线 * @param $str * @return string|string[]|null */ function hump_to_line($str){ return preg_replace_callback('/([A-Z])/', function ($match) { return '_' . lcfirst($match[0]); }, $str); } /** * 下划线转驼峰 * @param $str * @return string|string[]|null */ function line_to_hump($str){ $str = strtolower($str); return preg_replace_callback('/(_[a-z])/', function ($match) { return ucfirst(trim($match[0], '_')); }, $str); }