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

  • 相关阅读:
    揭秘富人的22种习惯与风格
    CSS
    浏览器--编辑器
    3 位运算 , 补码 ----在开发中比较少用
    2 Java数据类型+转义字符
    1 概述
    如何使用大脑
    JDBC
    web.xml文件的作用
    WindowBuilder插件探索
  • 原文地址:https://www.cnblogs.com/binglab/p/4074329.html
Copyright © 2011-2022 走看看