json中的urldecode不起作用

时间:2016-07-12 05:18:04

标签: php urldecode

require_once('db.php');

$sql = "SELECT * FROM tbl";

$rs = mysql_query($sql); 

$rows = array();

while($r = mysql_fetch_assoc($rs)) {
    $rows['Record'][] = $r;
}

print json_encode($rows);

mysql_close($conn);

//它在上面完美无缺

while($r = mysql_fetch_assoc($rs)) {

    $r = utf8_decode(urldecode($r));

    $rows['Record'][] = $r;
}

//它上面没有工作,可能是$ r是一个对象 我怎样才能使它有效?

1 个答案:

答案 0 :(得分:1)

问题是mysql_fetch_assoc返回一个数组,并且你想将它传递给urldecode,它等待一个字符串作为参数。

要实现您想要的效果,您应该将urldecode调用到返回的$r中的所有列。

你可以这样做,例如:

$r = array_map(function($col){
    return utf8_decode(urldecode($col));
}, $r);

http://php.net/manual/en/function.mysql-fetch-assoc.php

http://php.net/manual/en/function.urldecode.php