>  기사  >  php教程  >  json_encode 编码,对中文友好.

json_encode 编码,对中文友好.

PHP中文网
PHP中文网원래의
2016-05-25 17:05:011194검색


function jsonx_encode($array) {
	static $replace=array();
	if(!$replace) {
		for($i=0; $i < 0x20; $i++) {
			//$t = $find[$i];
			$t = chr($i);
			$replace[$t] = sprintf("\\u%04x",$i);
		}
		$replace["\\"]="\\\\";
		$replace["\""]="\\\"";
		$replace["\t"]="\\t";
		$replace["\r"]="\\r";
		$replace["\n"]="\\n";
		$replace["\x0C"]="\\f";
		$replace["\x08"]="\\b";
	}

	$str = &#39;&#39;;
	if(is_array($array) || is_object($array)) {
		$array = (array) $array;
		$is_o = array_keys($array) !== range(0, count($array) - 1);
		$str .= ($is_o ? "{" : &#39;[&#39;);
		$is_start=0;
		foreach($array as $k => $v) {
			$str .= ($is_start ? "," : &#39;&#39;);
			$is_start =1;
			if($is_o){
				$str .= &#39;"&#39;;
				$str .= strtr($k, $replace);
				$str .= &#39;":&#39;;
			}
			$t = __FUNCTION__;
			$str .= $t($v);
		}
		$str .= ($is_o ? "}" : &#39;]&#39;);
	}
	elseif(is_bool($array)) {
		$str .= ($array ? "true" : "false");
	}
	elseif(is_string($array)) {
		$str .= &#39;"&#39;;
		$str .= strtr($array, $replace);
		$str .= &#39;"&#39;;
	}
	elseif(is_numeric($array)) {
		$str .= $array;
	}
	else{
		$str .= &#39;null&#39;;
	}
	return $str;
}

                   

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:jq 添加删除class다음 기사:中文分词API