json_encode for PHP < 5.2

This commit is contained in:
Claude 2012-05-08 21:07:18 +02:00
parent 77dca63840
commit 5bef436e4b
2 changed files with 60 additions and 0 deletions

View File

@ -204,6 +204,7 @@ class Main extends CI_Controller
function index()
{
$this->load->helper('json');
if (!$this->input->post('submit'))
{
@ -369,6 +370,7 @@ class Main extends CI_Controller
function view()
{
$this->load->helper('json');
$this->load->model('pastes');
$check = $this->pastes->checkPaste(2);

View File

@ -0,0 +1,58 @@
<?php
/**
* Class and Function List:
* Function list:
* - json_encode()
* Classes list:
*/
//If you are on a version of PHP before 5.2, this might help:
if (!function_exists('json_encode'))
{
function json_encode($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 '"' . 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[] = json_encode($value);
$output_associative[] = json_encode($key) . ':' . 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
}
}
}