function json_encode_obj($data) { switch ($type = gettype($data)) { case 'NULL': return 'null'; case 'boolean': return $data ? 'true' : 'false'; case 'integer': case 'double': case 'float': return $data; case 'string': return '"' . addcslashes($data, "\v\t\n\r\f\"\\/") . '"'; case 'object': $data = get_object_vars($data); case 'array': $output_index_count = 0; $output_indexed = array(); $output_associative = array(); foreach ($data as $key => $value) { $output_indexed[] = json_encode_obj($value); $output_associative[] = json_encode_obj($key) . ':' . json_encode_obj($value); if ($output_index_count !== NULL && $output_index_count++ !== $key) { $output_index_count = NULL; } } if ($output_index_count !== NULL) { return '[' . implode(',', $output_indexed) . ']'; } else { return '{' . implode(',', $output_associative) . '}'; } default: return '""'; // Not supported } }
static function errorExitHandle($stream) { $exitCode = 254; $haystack = $stream['MESSAGE']; if (strpos($haystack, 'Database Error') !== FALSE) { $exitCode = 1; } else { if (strpos($haystack, 'Access denied') !== FALSE) { $exitCode = 1; } else { if (strpos($haystack, 'mysql_') !== FALSE) { $exitCode = 1; } else { if (strpos($haystack, 'mssql_') !== FALSE) { $exitCode = 1; } } } } $stream["TIME"] = NOW; $stream["EXIT_CODE"] = $exitCode; echo json_encode_obj($stream); exit($exitCode); }