note 74878 added to function.json-encode

From: Date: Wed, 02 May 2007 04:55:15 +0000
Subject: note 74878 added to function.json-encode
Groups: php.notes 
Request: Send a blank email to php-notes+get-126108@lists.php.net to get a copy of this message
I write a function "php_json_encode" for early version of php which support "multibyte" but doesn't support "json_encode". <?php function json_encode_string($in_str) { mb_internal_encoding("UTF-8"); $convmap = array(0x80, 0xFFFF, 0, 0xFFFF); $str = ""; for($i=mb_strlen($in_str)-1; $i>=0; $i--) { $mb_char = mb_substr($in_str, $i, 1); if(mb_ereg("&#(\\d+);", mb_encode_numericentity($mb_char, $convmap, "UTF-8"), $match)) { $str = sprintf("\\u%04x", $match[1]) . $str; } else { $str = $mb_char . $str; } } return $str; } function php_json_encode($arr) { $json_str = ""; if(is_array($arr)) { $pure_array = true; $array_length = count($arr); for($i=0;$i<$array_length;$i++) { if(! isset($arr[$i])) { $pure_array = false; break; } } if($pure_array) { $json_str ="["; $temp = array(); for($i=0;$i<$array_length;$i++) { $temp[] = sprintf("%s", php_json_encode($arr[$i])); } $json_str .= implode(",",$temp); $json_str .="]"; } else { $json_str ="{"; $temp = array(); foreach($arr as $key => $value) { $temp[] = sprintf("\"%s\":%s", $key, php_json_encode($value)); } $json_str .= implode(",",$temp); $json_str .="}"; } } else { if(is_string($arr)) { $json_str = "\"". json_encode_string($arr) . "\""; } else if(is_numeric($arr)) { $json_str = $arr; } else { $json_str = "\"". json_encode_string($arr) . "\""; } } return $json_str; } ---- Server IP: 140.113.54.119 Probable Submitter: 220.136.219.96 ---- Manual Page -- http://www.php.net/manual/en/function.json-encode.php Edit -- https://master.php.net/note/edit/74878 Del: integrated -- https://master.php.net/note/delete/74878/integrated Del: useless -- https://master.php.net/note/delete/74878/useless Del: bad code -- https://master.php.net/note/delete/74878/bad+code Del: spam -- https://master.php.net/note/delete/74878/spam Del: non-english -- https://master.php.net/note/delete/74878/non-english Del: in docs -- https://master.php.net/note/delete/74878/in+docs Del: other reasons-- https://master.php.net/note/delete/74878 Reject -- https://master.php.net/note/reject/74878 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#126108) next »