JSON_encode своими силами

Вот все упрекают php-шников в «велосипедостроении». А что, блин, делать-то? Чтобы добиться нормальной работы json_encode с обратной косой чертой и одиночной кавычкой, провозился целый день. И так и не добился. Потом за полчаса написал свою функцию, которая еще и не переводит unicode-символы в мнемоники и структурно форматирует текст.

[sourcecode language=»php»]
<?php
function encodeJSON ($data, $level = 0) {
if (is_scalar($data))
return """.addslashes ($data).""";
$token = array();
$indent = str_repeat(‘ ‘, $level);
if (is_array($data) && (array_values($data) === $data)) {
foreach ($data as $val)
$token[] = encodeJSON ($val, $level + 1);
return "[n {$indent}". implode(",n {$indent}", $token)."n{$indent}]";
}
if (is_array($data) || is_object($data)) {
foreach ($data as $key => $val)
$token[] = encodeJSON ($key)." : ".encodeJSON ($val, $level + 1);
return "{n {$indent}". implode(",n {$indent}", $token)."n{$indent}}";
}
}
?>
[/sourcecode]
PHP ненавижу…

Метки: ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *