Snippet: jsonEncode();

Okt 12 2009 Published by under Code-Snippet, PHP

flattr this!

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;
}
Tags: , , ,

No responses yet

Hinterlasse eine Antwort