note 74878 deleted from function.json-encode by cmb

From: Date: Sun, 04 Nov 2018 10:07:35 +0000
Subject: note 74878 deleted from function.json-encode by cmb
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-209611@lists.php.net to get a copy of this message
Note Submitter: Yi-Ren Chen at NCTU CSIE ---- 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; }

« previous php.notes (#209611) next »