コード例 #1
0
ファイル: gzUtility.php プロジェクト: phone1246/mikrotik
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
    }
}
コード例 #2
0
ファイル: gz.php プロジェクト: phone1246/mikrotik
 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);
 }