function serializeArray($result, $instance, $isSimpleResult, $serverKey) { $json = ""; if (is_array($result)) { if (ArrayUtils::isAssociative($result)) { $json .= "{"; foreach ($result as $key => $value) { $json .= '"' . $key . '":'; if (is_object($value)) { $json .= serializeObject($value, $instance, false, $serverKey); } else { if (is_array($value)) { $json .= serializeArray($value, $instance, $isSimpleResult, $serverKey); } else { $json .= serializeObject($value, $instance, !is_object($value), $serverKey); } } $json .= ","; } } else { $json .= "["; for ($i = 0; $i < count($result); $i++) { $json .= serializeObject($result[$i], $instance, $isSimpleResult, $serverKey) . ","; } } $json = JsonUtils::removeLastChar($result, $json); if (ArrayUtils::isAssociative($result)) { $json .= "}"; } else { $json .= "]"; } } return $json; }
/** * Temp Store survey. * * @param AnswersFormRequest $request * @param AnswersRepository $answerRepository * * @internal param AnswersRepository $repo * * @return \Illuminate\View\View */ public function store(AnswersFormRequest $request, AnswersRepository $answerRepository, Dispatcher $dispatcher) { // Make an answers DTO from Inputs $answersDTO = new AnswersDTO(serializeArray($request->all())); // Create an Answer if email does not already exists try { $saved = $answerRepository->createAndSaveIfUnique($answersDTO->toArray()); $dispatcher->fire(new SurveyWasSubmitted($saved->id)); } catch (EmailExistsException $e) { return view('survey.alreadySubmitted', ['email' => $answersDTO->email]); } return Redirect::route('answer.saved', ['email' => $answersDTO->email ?: '', 'answer_id' => $saved->id]); }
function serializeMethodResult($method, $result, $instance, $serverKey) { $json = ""; if (isNoResult($method)) { return "{}"; } $isSimpleResult = isSimpleResult($method); if ($result === null) { if ($isSimpleResult) { $json .= '{"' . $method->getResult() . '":null}'; } else { $json .= "{}"; } } else { if ($isSimpleResult) { $json .= '{"' . $method->getResult() . '":'; } if ($method->isArray()) { if (is_array($result)) { $json .= serializeArray($result, $instance, $isSimpleResult, $serverKey); } else { // The result it's not an array although it was described IT WAS an array throw new MashapeException(EXCEPTION_EXPECTED_ARRAY_RESULT_SIMPLE, EXCEPTION_GENERIC_LIBRARY_ERROR_CODE); } } else { if (is_array($result)) { // The result it's an array although it was described IT WAS NOT an array throw new MashapeException(EXCEPTION_UNEXPECTED_ARRAY_RESULT_SIMPLE, EXCEPTION_GENERIC_LIBRARY_ERROR_CODE); } else { $json .= serializeObject($result, $instance, $isSimpleResult, $serverKey); } } if ($isSimpleResult) { $json .= '}'; } } return $json; }
function serializeObject($result, $instance, $isSimpleResult, $serverKey) { $json = ""; if ($isSimpleResult) { // It's a simple result, just serialize it $json = JsonUtils::encodeToJson($result); } else { // It's a custom object, let's serialize recursively every field $className = get_class($result); $reflectedClass = new ReflectionClass($className); $xmlObject = RESTConfigurationLoader::getObject($className, $serverKey); if (empty($xmlObject)) { throw new MashapeException(sprintf(EXCEPTION_UNKNOWN_OBJECT, $className), EXCEPTION_GENERIC_LIBRARY_ERROR_CODE); } // Start element $json .= "{"; // Serialize fields $fields = $xmlObject->getFields(); for ($i = 0; $i < count($fields); $i++) { $field = $fields[$i]; $fieldName = $field->getName(); $fieldMethod = $field->getMethod(); $fieldValue = null; if (empty($fieldMethod)) { if ($reflectedClass->hasProperty($fieldName)) { $reflectedProperty = $reflectedClass->getProperty($fieldName); if ($reflectedProperty->isPublic()) { $fieldValue = $reflectedProperty->getValue($result); } else { // Try using the __get magic method $fieldValue = $reflectedClass->getMethod("__get")->invokeArgs($result, array($fieldName)); } } else { if (ArrayUtils::existKey($fieldName, get_object_vars($result))) { $fieldValue = $result->{$fieldName}; } else { throw new MashapeException(sprintf(EXCEPTION_FIELD_NOTFOUND, $fieldName), EXCEPTION_GENERIC_LIBRARY_ERROR_CODE); } } } else { $fieldValue = $reflectedClass->getMethod($fieldMethod)->invoke($result); } if ($fieldValue === null && $field->isOptional()) { // Don't serialize the field continue; } $json .= '"' . $fieldName . '":'; if ($fieldValue === null) { $json .= JsonUtils::encodeToJson($fieldValue); } else { $isSimpleField = isSimpleField($field); if ($field->isArray()) { if (is_array($fieldValue)) { $json .= serializeArray($fieldValue, $instance, isSimpleField($field), $serverKey); } else { // The result it's not an array although it was described IT WAS an array throw new MashapeException(sprintf(EXCEPTION_EXPECTED_ARRAY_RESULT, $fieldName, $className), EXCEPTION_GENERIC_LIBRARY_ERROR_CODE); } } else { if (is_array($fieldValue)) { // The result it's an array although it was described IT WAS NOT an array throw new MashapeException(sprintf(EXCEPTION_UNEXPECTED_ARRAY_RESULT, $fieldName, $className), EXCEPTION_GENERIC_LIBRARY_ERROR_CODE); } else { $json .= serializeObject($fieldValue, $instance, $isSimpleField, $serverKey); } } } $json .= ","; } if (substr($json, strlen($json) - 1, 1) != "{") { $json = JsonUtils::removeLastChar($fields, $json); } // Close element $json .= "}"; } return $json; }
function getContentTree($params) { /* -- VALID PARAMS -- -- REQUIRED -- id (int) - specifies a specific id to return statusid (int) */ global $statusid; global $search; global $values; $list = get_html_translation_table(HTML_ENTITIES); //unset($list['"']); unset($list['<']); unset($list['>']); $search = array_keys($list); $values = array_values($list); $search = array_map('utf8_encode', $search); $sendParams = array(); $statusid = -1; $xml = ""; $sql = "SELECT content.id,content.parentid,content.migtitle,content.containerpath,is_fixed " . "FROM `content` "; if (isset($params['id'])) { $sql .= " WHERE content.id = :id "; $sendParams['id'] = $params['id']; if (isset($params['statusid'])) { $statusid = $params['statusid']; $sql .= " AND content.statusid = :statusid "; $sendParams['statusid'] = $params['statusid']; } $sql .= " AND deleted = '0' ORDER BY displayorder"; } else { $sql .= " WHERE parentid = 0 AND deleted = '0' ORDER BY displayorder"; } $result = queryDatabase($sql, $sendParams); $xml .= "<categoryTree>"; //$arrContainers = array(); while ($row = $result->fetch(PDO::FETCH_ASSOC)) { $xml .= "<container " . returnTagAttributes($row) . ">"; if ($x = returnChildren($row['id'])) { $xml .= $x; } $xml .= "</container>"; } $xml .= "</categoryTree>"; //header('Content-type: text/xml; charset="utf-8"',true); $xml = trim($xml); serializeArray($xml); //echo $xml; die; }
function outputDirectoryListing($newdir) { $dir = opendir($newdir); $resultList = array(); if ($dir) { while (($file = readdir($dir)) !== false) { if ($file !== "." && $file !== ".." && $file != "migThumbs" && $file != ".DS_Store") { $mtime = filemtime($newdir . $file); if (is_file($newdir . $file)) { $type = "file"; $size = shell_exec("du -k " . $newdir . $file); $chars = preg_split("/[\\s,]*\\\"([^\\\"]+)\\\"[\\s,]*|" . "[\\s,]*'([^']+)'[\\s,]*|" . "[\\s,]+/", $size, -1, PREG_SPLIT_OFFSET_CAPTURE); //print_r($chars); $size = $chars[0][0]; $createthumb = preg_match_all('/^.*\\.(jpg|jpeg|png|gif|tiff|tiff|bmp|mov|m4v|flv|f4v|mp4)$/i', $file, $arr, PREG_PATTERN_ORDER); $childrencount = 0; } else { $type = "folder"; $size = dirsize($newdir . $file); $createthumb = 0; $childrencount = num_files($newdir . $file, 3); } $size *= 1024; //$size = byteSize($size); $arr = array("name" => $file, "createdate" => $mtime, "size" => $size, "type" => $type, "createthumb" => $createthumb, "childrencount" => $childrencount); array_push($resultList, $arr); } } serializeArray($resultList); closedir($dir); } }