php专区

 首页 > php专区 > PHP基础 > 函数 > son_encode替代函数php_json_encode

son_encode替代函数php_json_encode

分享到:
【字体:

由于json_encode函数需要php5.20以上版本才支持,php不支持json_encode如何也用上json的功能呢?有没有什么替代函数,替代函数是没有的,不过有人做了一个自定义的php_json_encode,使用中会出现什么样的问题还未可知.

http://www.php.net/manual/zh/function.json-encode.php#74878

[php]
function php_json_encode($arr)
{
    $json_str = "";
    if(is_array($arr))
    {
      $pure_array = true;
      $array_length = count($arr);
      for($i=0;$i       {
        if(! isset($arr[$i]))
        {
          $pure_array = false;
          break;
        }
      }
      if($pure_array)
      {
        $json_str ="[";
        $temp = array();
        for($i=0;$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;
}

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;
}

[/php]

json_encode替代函数php_json_encode

分享到:
php中die和exit的区别php中die和exit的区...
php中die和exit的区别是什么? 两个好像都是终止程序执行,貌似的确没有不同 GOOGLE了一下有人说一个是死之前还能冒个泡,一个不会 翻了一下手册,好像exit也是可以输出东西的 void exit ( [string status] ); 但是关于exit有一个注释:注意: 由于这是一个语言结构而非函数,因此它无法被...
如何往php函数中传入不定数量的参数?
如何往php函数中传入不定数量的参数? 我觉得方法有两种 数组方式传值 函数内通过func_get_args来获取值 最简单的方法是传入一个数组,数组值的个数是可以不限制数量的 另外一个方法是使用func_get_args来获取参数 function args($sql) { $args...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……