Gestern hatte ich das Problem, dass json_encode alle Strings mit einem Umlaut einfach gelöscht hatte. utf8_encode brachte auch nichts. Deswegen schnell eine eigene jsonEncode();-Funktion geschrieben!
Diese Funktion ersetzt die json_encode-Funktion komplett. Selbst mehrdimensionale Arrays sind kein Problem, da die Funktion rekursiv programmiert ist.
function jsonEncode($array) { $zaehler = 1; $ret = '{'; foreach($array as $key => $val) { $ret .= '"' . $key . '":'; if(is_string($val)) { if(empty($val)) { $ret .= 'null'; } else { $val_e = str_replace('"', '\"', $val); $val_e = str_replace('/', '/', $val_e); $ret .= '"' . $val_e . '"'; } } elseif(is_bool($val)) { if($val == true) { $ret .= 'true'; } elseif($val == false) { $ret .= 'false'; } } elseif(is_array($val)) { $ret .= jsonEncode($val); } elseif(is_null($val)) { $ret .= 'null'; } if($zaehler < count($array)) { $ret .= ','; } $zaehler++; } $ret .= '}'; return $ret; }
