加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_郴州站长网 (http://www.0735zz.com/)- 云通信、区块链、物联设备、云计算、站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

用PHP将一个数组存到数据库的一个字段的技巧

发布时间:2022-07-24 11:58:31 所属栏目:PHP教程 来源:互联网
导读:在工作项目中有一个需求,要把数一些数据转成数组,然后再存到数库库一个字段中,个人目前知道两种方法,一种是用序列化函数serialize($arr);,还有一种是用php的json扩展自带的函数json_encode($arr);. 要把数一个数组,存到数据库的一个字段中,有两种方法,一种是
  在工作项目中有一个需求,要把数一些数据转成数组,然后再存到数库库一个字段中,个人目前知道两种方法,一种是用序列化函数serialize($arr);,还有一种是用php的json扩展自带的函数json_encode($arr);.
 
  要把数一个数组,存到数据库的一个字段中,有两种方法,一种是用序列化函数serialize($arr);还有一种是用php的json扩展自带的函数json_encode($arr);如果json_encode对含有中文的字符进行编码时,会自动转换成unicode编码,就像这样:a:2:{s:4:”code”;s:1:”1″;s:3:”msg”;s:9:”PHP日志”;},虽然js上能正常处理,但是看起来还是不那爽,在PHP的官方网站上面找到一个函数,可以解决这个问题,也就是将数据转换json,而且中文不会被转换为unicode码,代码如下:
 
  <?php
  function php2js($a=false)
  {
    if (is_null($a)) return 'null';
    if ($a === false) return 'false';
    if ($a === true) return 'true';
    if (is_scalar($a))
    {
      if (is_float($a))
      {
        // Always use "." for floats.
        $a = str_replace(",", ".", strval($a));
      }
   
      // All scalars are converted to strings to avoid indeterminism.
      // PHP's "1" and 1 are equal for all PHP operators, but
      // JS's "1" and 1 are not. So if we pass "1" or 1 from the PHP backend,
      // we should get the same result in the JS frontend (string).
      // Character replacements for JSON.
      static $jsonReplaces = array(array("", "/", "n", "t", "r", "b", "f", '"'),
      array('', '/', 'n', 't', 'r', 'b', 'f', '"'));
      return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"';
    }
    $isList = true;
    for ($i = 0, reset($a); $i < count($a); $i++, next($a))
    { //开源软件:phpfensi.com
      if (key($a) !== $i)
      {
        $isList = false;
        break;
      }
    }
    $result = array();
    if ($isList)
    {
      foreach ($a as $v) $result[] = php2js($v);
      return '[ ' . join(', ', $result) . ' ]';
    }
    else
    {
      foreach ($a as $k => $v) $result[] = php2js($k).': '.php2js($v);
      return '{ ' . join(', ', $result) . ' }';
    }
  }
  ?>
  使用方法一:
 
  echo serialize(array(‘code’=>’1′,’msg’=>’PHP日志’));
 
  输出:a:2:{s:4:”code”;s:1:”1″;s:3:”msg”;s:9:”PHP日志”;}
 
  使用方法二:
 
  echo json_encode(array(‘code’=>’1′,’msg’=>’PHP日志’));
 
  输出:{“code”:”1″,”msg”:”PHPu65e5u5fd7″}
 
  使用方法三:
 
  echo php2js(array(‘code’=>’1′,’msg’=>’未知错误’));
 
  输出:{ “code”: “1”, “msg”: “PHP日志” }

(编辑:开发网_郴州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读