php 封装 json,php处理json函数

如果还是在为:

1.  php中使用json_decode 显示NULL

2.  php获取的json数据中文乱码

3. 。。。。。。

这些问题而头疼,不妨使用璞玉写的处理json的函数:

function arrayToJson($array)

{

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;

}

/**

* 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("\n","",$string);

$string = str_replace("\r","",$string);

return $string;

}

调用方法:

$arr = arrayToJson($arr);

die($arr);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值