tbrehm
2012-05-11 86985d07e25a39aece61599480673f791b512a06
interface/lib/classes/functions.inc.php
@@ -45,6 +45,7 @@
         $content = file_get_contents($filepath);
         $content = chunk_split(base64_encode($content));
         $uid = strtoupper(md5(uniqid(time())));
         $subject      = "=?utf-8?B?".base64_encode($subject)."?=";
         
         if($filename == '') {
            $path_parts = pathinfo($filepath);
@@ -73,6 +74,9 @@
         mail($to, $subject, "", $header);
      } else {
         $header = "From: $from\nReply-To: $from\n";
         $header .= "Content-Type: text/plain;\n\tcharset=\"UTF-8\"\n";
         $header .= "Content-Transfer-Encoding: 8bit\n\n";
         $subject      = "=?utf-8?B?".base64_encode($subject)."?=";
         mail($to, $subject, $text, $header);
      }
@@ -105,6 +109,46 @@
      return $url;
   }
   
    function json_encode($data) {
      if(!function_exists('json_encode')){
         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 '"' . addslashes($data) . '"';
            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[] = $this->json_encode($value);
                  $output_associative[] = $this->json_encode($key) . ':' . $this->json_encode($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
         }
      } else {
         return json_encode($data);
      }
    }
      
}