Heim  >  Artikel  >  类库下载  >  son_encode替代函数php_json_encode

son_encode替代函数php_json_encode

高洛峰
高洛峰Original
2016-10-14 10:37:341329Durchsuche

由于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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

In Verbindung stehende Artikel

Mehr sehen