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字符串形式输出。

  • 相关阅读:
    园子一周年
    HTML5本地存储之Web Storage实例篇,最有用的是localStorage
    解析H5本地储存Web Storage
    response.sendRedirect传递参数和转向
    html文件form表单action调用servlet连接mysql数据库实例
    容器List之ArrayList详解
    PageHelper的使用
    可迭代对象、迭代器、生成器
    伪随机数生成器——random模块的用法
    python中的单例设计模式
  • 原文地址:https://www.cnblogs.com/binglab/p/4074329.html
Copyright © 2011-2022 走看看