public static function xml_to_array($xml) { $reg = "/<(\\w+)[^>]*>([\\x00-\\xFF]*)<\\/\\1>/"; if (preg_match_all($reg, $xml, $matches)) { $count = count($matches[0]); for ($i = 0; $i < $count; $i++) { $subxml = $matches[2][$i]; $key = $matches[1][$i]; if (preg_match($reg, $subxml)) { $arr[$key] = ToolManager::xml_to_array($subxml); } else { $arr[$key] = $subxml; } } } return $arr; }
public function actionGetPoiEncode() { $lat = $_GET['lat']; $lon = $_GET['lon']; $gaode_regeo_api = 'http://restapi.amap.com/v3/geocode/regeo'; $api_key = '3c11184af876b8ed0c159423e7db3bac'; $radius = 500; $extensions = 'all'; $batch = false; $roadlevel = 1; $post_data = array('key' => $api_key, 'location' => $lat . "," . $lon, 'radius' => $radius, 'extensions' => $extensions, 'batch' => $batch, 'roadlevel' => $roadlevel); try { $results = ToolManager::post($gaode_regeo_api, $post_data); $res_array = json_decode($results, true); $status = $res_array['status']; } catch (Exception $e) { $status = '0'; } if ($status == '1') { $data_array = array(); foreach ($res_array['regeocode']['pois'] as $poi) { $local_prefix = $res_array['regeocode']['addressComponent']['province'] . $res_array['regeocode']['addressComponent']['district']; $tip_data['address'] = $poi['name']; $tip_data['local'] = $local_prefix . $poi['address']; $data_array[] = $tip_data; } $ret_json = array('status' => 0, 'message' => '输入提示获取成功!', 'data' => $data_array); } else { $ret_json = array('status' => 1, 'message' => '输入提示获取失败!', 'data' => array()); } echo CJSON::encode($ret_json); }
public static function submitOrder($user_id, $shop_id, $washing, $washing_time, $message) { $ret_json = array("status" => 0, "message" => "提交订单成功!", "data" => array()); $order_id = ToolManager::genOrderNum(); $car_wash_order_info = new CarWashOrderInfo(); $car_wash_order_info->order_id = $order_id; $car_wash_order_info->userid = $user_id; $car_wash_order_info->shop_id = $shop_id; $car_wash_order_info->washing_time = $washing_time; $car_wash_order_info->washing = implode("|", $washing); $car_wash_order_info->message = $message; $car_wash_order_info->create_time = date('y-m-d h:i:s', time()); try { $car_wash_order_info->save(); } catch (Exception $ex) { $ret_json["status"] = 1; $ret_json["message"] = "数据库更新失败,提交订单失败!"; } $ret_json['data'] = array(array("order_id" => $order_id)); return $ret_json; }
public function actionShopFilterRequest() { header('Content-Type: application/javascript'); $callback = $_REQUEST['callback']; $gaode_get_area_info = 'http://restapi.amap.com/v3/config/district'; $api_key = '3c11184af876b8ed0c159423e7db3bac'; $post_data = array('key' => $api_key, 'subdistrict' => 3, 'extensions' => 'base'); try { $tips = ToolManager::post($gaode_get_area_info, $post_data); $results = json_decode($tips, true); $status = $results['status']; $count = $results['count']; } catch (Exception $e) { $status = '0'; $count = '0'; } $ret_array = array('status' => 0, 'message' => "获取过滤条件成功!", 'data' => array()); $ret_json = array('status' => 0, 'message' => '获取地区列表成功!', 'data' => array()); if ($status == '1' && $count != '0') { $address_array = array('num' => 0, 'data' => array()); foreach ($results['districts'][0]['districts'] as $district) { $province_array = array('name' => $district['name'], 'city' => array()); $province = $district['districts']; $province_level_city = array("北京市", "天津市", "上海市", "重庆市"); if (empty($province)) { continue; } else { if (in_array($district['name'], $province_level_city)) { $sub_areas = $province[0]['districts']; } else { $sub_areas = $province; } } foreach ($sub_areas as $sub_area) { $city_arrary = array('name' => $sub_area['name']); $province_array['city'][] = $city_arrary; } $address_array['data'][] = array('province' => $province_array); } $address_array['num'] = count($address_array['data']); } else { $ret_json = array('status' => 1, 'message' => '获取地区列表失败!', 'data' => array()); } $type_array = array('num' => 0); $type_results = CarWashManager::getWashType(); if (!empty($type_results)) { foreach ($type_results as $result) { $type_array[strval($result->service_id)] = $result->service_name; } $type_array['num'] = count($type_results); } $range_array = array('num' => 0); $range_results = CarWashManager::getWashRange(); if (!empty($range_results)) { foreach ($range_results as $result) { $range_array[strval($result->range_id)] = $result->range_name; } $range_array['num'] = count($range_results); } if ($ret_json['status'] != 1) { $ret_json['data'][] = array('address' => $address_array, 'type' => $type_array, 'range' => $range_array); } echo $callback . "(" . CJSON::encode($ret_json) . ");"; }