phpはjson中国語が空または文字化けしの問題を処理する.
1715 ワード
function arrayToJson($array) {
}
function arrayForRecursive(&$array, $function, $apply_to_keys_also=false) {
}
function struct2Array($item) {
}
/** repalceSpecialSign、特殊記号を置換. @param str string文字列 @return str */function repalceSpecialSign($string) { $string = preg_replace(“/\s/“,““,$string); $string = str_replace(“\“,“\\“,$string); $string = str_replace(“'“,“\'“,$string); $string = str_replace(“"“,“\"“,$string); $string = str_replace(PHP_EOL,'',$string); $string = str_replace(“”,““,$string); $string = str_replace(“\r”,““,$string); return $string; }
arraytojsonを呼び出せばいいです.
http://www.pooy.net/original-php-json-function-json-format.html
arrayForRecursive($array, 'urlencode', true);
$json = json_encode($array);
$json = urldecode($json);
return $json;
}
function arrayForRecursive(&$array, $function, $apply_to_keys_also=false) {
static $recursive_counter = 0;
if (++$recursive_counter>1000)
die(' !');
foreach ($array as $key=>$value)
{
if (is_array($value))
arrayForRecursive($array[$key], $function, $apply_to_keys_also);
else
$array[$key] = $function(repalceSpecialSign($value));
if ($apply_to_keys_also&&is_string($key))
{
$new_key = $function($key);
if ($new_key!=$key)
{
$array[$new_key] = $array[$key];
unset($array[$key]);
}
}
}
$recursive_counter--;
}
function struct2Array($item) {
if (!is_string($item))
{
$item = (array)$item;
foreach ($item as $key=>$val)
{
$item[$key] = Struct2Array($val);
}
}
return $item;
}
/**
arraytojsonを呼び出せばいいです.
http://www.pooy.net/original-php-json-function-json-format.html