zoukankan      html  css  js  c++  java
  • php数组转为字符串,数据库存储

    php对象转字符存储数据库的方法。

    总所周知对象是不能直接存储到数据库的。那么我们用什么样的方法能够存储到数据库中能?

    方法一:序列化serializeunserialize

    序列化对象serialize

    反序列化对象unserialize

    当数组值包含如双引号、单引号或冒号等字符时,它们被反序列化后,可能会出现问题。

    为了克服这个问题,可以使用base64_encode和base64_decode。

    但是base64编码将增加字符串的长度。为了克服这个问题,可以和gzcompress一起使用。

    //定义一个用来序列化对象的函数
    function my_serialize( $obj ) 
    { 
       return base64_encode(gzcompress(serialize($obj))); 
    } 
    //反序列化
    function my_unserialize($txt) 
    { 
       return unserialize(gzuncompress(base64_decode($txt))); 
    }

    方法二:json_encode 和 json_decode

    使用JSON格式序列化和反序列化是一个不错的选择: 

    使用json_encode和json_decode格式输出要serialize和unserialize格式快得多。

    JSON格式是可读的。

    json格式很多语言都可以解析

    方法三:var_export 和 eval

    var_export 函数把变量作为一个字符串输出;eval把字符串当成PHP代码来执行,反序列化得到最初变量的内容。

    $str="array (
            0 => 'a',
            1 => 'b',
            2 => 'c',
    )";
    $arr=eval("return {$str};");
    //结果是
    array (
            0 => 'a',
            1 => 'b',
            2 => 'c',
    )
    $re=var_export($reArr, true);
    //结果是
    "array (
            0 => 'a',
            1 => 'b',
            2 => 'c',
    )";

    方法四:wddx_serialize_value 和 wddx deserialize

    wddx_serialize_value函数可以序列化数组变量,并以XML字符串形式输出。

  • 相关阅读:
    HTTP状态码表
    统计各国访客插件 flag counter
    获取和设置cookie的方法(5种)
    最简单的方式创建node.js 静态服务器
    js中map,forEach,filter,reduce等方法是ECMAScript5 Array新增方法
    ECMAScript各个版本简介及特性
    JSON的parse()和stringfy()方法
    javascript中的错误对象error
    JS window对象的top、parent、opener含义介绍
    postman的使用总结
  • 原文地址:https://www.cnblogs.com/binglab/p/4074329.html
Copyright © 2011-2022 走看看