好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

查看更多关于用PHP将一个数组存到数据库的一个字段的方法的详细内容...

  阅读:44次