private static function jsonDecode($data, $assoc = false) { $result = false; if (function_exists('json_decode')) { $result = array(true, json_decode($data, $assoc)); } elseif (method_exists('Tools', 'jsonEncode')) { $result = array(true, Tools::jsonDecode($data, $assoc)); } else { $result = array(false); } if ($result) { $code = isset($result[1]['status']) ? $result[1]['status']['code'] : $result[1]['code']; $message = isset($result[1]['status']) ? $result[1]['status']['message'] : $result[1]['message']; $response = isset($result[1]['response']) ? $result[1]['response'] : ''; return array('json' => true, 'status_code' => $code, 'status_message' => $message, 'response' => $response); } else { $result = preg_match('/code[\\W]*(\\d*)/', $data, $matches); $status_code = $result == 1 ? $matches[1] : ''; unset($matches, $result); $result = preg_match("/message[\\W]*[\"'](.*?)[\"']/", $data, $matches); $status_message = $result == 1 ? $matches[1] : ''; unset($matches, $result); $result = preg_match('/response[\\W]*({)/', $data, $matches, PREG_OFFSET_CAPTURE); $response = ''; if ($result == 1 && isset($matches[1][1])) { $response = YotpoHttpClient::getStringBetweenBrackets(substr($data, $matches[1][1])); } return array('json' => false, 'status_code' => $status_code, 'status_message' => $status_message, 'response' => $response); } }