首页 > 语言 > PHP > 正文

用PHP将一个数组存到数据库的一个字段的方法

2024-09-04 11:46:34
字体:大 中 小
来源:转载
供稿:网友

在工作项目中有一个需求,要把数一些数据转成数组,然后再存到数库库一个字段中,个人目前知道两种方法,一种是用序列化函数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码,代码如下:

  1. <?php 
  2. function php2js($a=false) 
  3. { 
  4.   if (is_null($a)) return 'null'; 
  5.   if ($a === false) return 'false'; 
  6.   if ($a === true) return 'true'; 
  7.   if (is_scalar($a)) 
  8.   { 
  9.     if (is_float($a)) 
  10.     { 
  11.       // Always use "." for floats. 
  12.       $a = str_replace(",", ".", strval($a)); 
  13.     } 
  14.  
  15.     // All scalars are converted to strings to avoid indeterminism. 
  16.     // PHP's "1" and 1 are equal for all PHP operators, but 
  17.     // JS's "1" and 1 are not. So if we pass "1" or 1 from the PHP backend, 
  18.     // we should get the same result in the JS frontend (string). 
  19.     // Character replacements for JSON. 
  20.     static $jsonReplaces = array(array("", "/", "n", "t", "r", "b", "f", '"'), 
  21.     array('/', '/', 'n', 't', 'r', 'b', 'f', '"')); 
  22.     return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"'; 
  23.   } 
  24.   $isList = true; 
  25.   for ($i = 0, reset($a); $i < count($a); $i++, next($a)) 
  26.   { //开源软件:Vevb.com 
  27.     if (key($a) !== $i) 
  28.     { 
  29.       $isList = false; 
  30.       break; 
  31.     } 
  32.   } 
  33.   $result = array(); 
  34.   if ($isList) 
  35.   { 
  36.     foreach ($a as $v) $result[] = php2js($v); 
  37.     return '[ ' . join(', ', $result) . ' ]'; 
  38.   } 
  39.   else 
  40.   { 
  41.     foreach ($a as $k => $v) $result[] = php2js($k).': '.php2js($v); 
  42.     return '{ ' . join(', ', $result) . ' }'; 
  43.   } 
  44. } 
  45. ?> 

使用方法一:

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日志” }

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表