Kết quả 1 đến 7 của 7
  1. #1
    Moderator 2webvn.com's Avatar
    Ngày tham gia
    27-03-2013
    Bài viết
    203
    Cảm ơn
    24
    Được cảm ơn 119 trong 81 bài viết

    Bạn chọn Giải pháp Lưu trữ Array Serialize or json ??

    Mình thì thường dùng Serialize và cũng thích hàm này hơn là json_encode

    Nhưng đôi khi để giao tiếp với javascript mình buộc phải dùng json_encode

    Còn bạn thì sao?

  2. #2
    Super Moderator Zen Studio's Avatar
    Ngày tham gia
    19-06-2013
    Bài viết
    393
    Cảm ơn
    58
    Được cảm ơn 166 trong 123 bài viết
    cùng chung ý tưởng
    hay cung chung toi chinh phuc tri thuc

  3. #3
    CI Member PhanNguyenChuong's Avatar
    Ngày tham gia
    15-07-2013
    Bài viết
    134
    Cảm ơn
    124
    Được cảm ơn 36 trong 32 bài viết
    Mình thấy 2 anh bạn này có một chút khác nhau về bản chất khi serialize 1 mảng và kết quả trả về khi unserialize. Và khi json_encode 1 mảng với kết quả trả về khi json_decode. Chủ thớt cho mọi người ví dụ về 2 anh bạn này khi serialize-unserialize với encode - decode đi :D

  4. #4
    Moderator 2webvn.com's Avatar
    Ngày tham gia
    27-03-2013
    Bài viết
    203
    Cảm ơn
    24
    Được cảm ơn 119 trong 81 bài viết
    Trích dẫn Gửi bởi PhanNguyenChuong Xem bài viết
    Mình thấy 2 anh bạn này có một chút khác nhau về bản chất khi serialize 1 mảng và kết quả trả về khi unserialize. Và khi json_encode 1 mảng với kết quả trả về khi json_decode. Chủ thớt cho mọi người ví dụ về 2 anh bạn này khi serialize-unserialize với encode - decode đi :D
    2 thằng này mình thường dùng để lưu trữ hoặc giao tiếp với các ngôn ngữ khác.

    json_encode: Yêu cầu (PHP >= 5.2.0, PECL json >= 1.2.0)
    serialize: PHP 4 5 điều dùng được.

    Giống nhau theo mình biết được: chuyển dữ liệu array() , String sang dạng dữ liệu text:

    serialize

    PHP Code:
    <?php
    $str 
    "Hello";
    $array = ('Hello');
    echo 
    serialize($str); // s:5:"Hello";
    echo serialize($array); // a:1:{i:0;s:5:"Hello";}
    ?>
    json_encode
    PHP Code:
    <?php
    $str 
    "Hello";
    $array = array('Hello');
    echo 
    json_encode($str); // "Hello"
    echo json_encode($array); // ["Hello"]
    ?>
    Khi muốn chuyển dữ liệu ngược lại thì dùng unserialize($array) , json_decode($array).

    Khác nhau theo mình biết được:
    1. Tốc độ
    serialize: Tốc độ chậm hơn json_encode
    unserialize tốc độ nhanh hơn json_decode

    2. Chuyển Object thành dạng dữ liệu text:
    serialize
    : Có thể
    PHP Code:
    http://php.net/manual/en/language.oop5.serialization.php 
    json_encode : Không thể

    3. Giao tiếp với các ngôn ngữ khác ngoài PHP
    serialize: Chỉ dùng trong PHP
    json_encode : json hỗ trợ hầu hết ở các ngôn ngữ khác (Javascript, C#, Java, python ...)
    VD: javascript
    PHP Code:
    // test.php
    <?php
    $data 
    = array(
        
    'name' => 'John',
        
    'time'  => '2pm'
    );
    echo 
    json_encode($data);
    ?>
    jQuery $.get
    Code:
    $.get("test.php",
    
    
       function(data) {
    
         $('body').append( "Name: " + data.name ) // John
    
                  .append( "Time: " + data.time ); //  2pm
    
       }, "json");
    Mình cũng vừa tích hợp firewall (cũng dùng serialize) vào code 2 trang
    Để test thử bạn vào 1 trong 2 trang trên ấn đè F5 khoảng vài giây bạn sẽ nhận được thông báo

    Name:  firewall.jpg
Views: 199
Size:  11.7 KB
    Sửa lần cuối bởi 2webvn.com; 17-07-2013 lúc 09:06 AM.

  5. The Following 2 Users Say Thank You to 2webvn.com For This Useful Post:

    PhanNguyenChuong (17-07-2013),tinhphaistc (17-07-2013)

  6. #5
    Super Moderator tinhphaistc's Avatar
    Ngày tham gia
    01-03-2013
    Bài viết
    693
    Cảm ơn
    244
    Được cảm ơn 278 trong 210 bài viết
    hay quá. thanks đã chia sẽ
    THÔNG TIN HỖ TRỢ DIỄN ĐÀN CODEIGNITER VIỆT NAM
    Email: tinhphaistc@gmail.com

  7. #6
    CI Member PhanNguyenChuong's Avatar
    Ngày tham gia
    15-07-2013
    Bài viết
    134
    Cảm ơn
    124
    Được cảm ơn 36 trong 32 bài viết
    Thanks bạn vì bài viết rất hay, và rất bổ ích. Mình chỉ thêm một ý nhỏ nữa

    + Đối với mảng:
    PHP Code:
    function debug($var){
       echo 
    "<pre>";
       
    print_r($var);
       echo 
    "</pre>";
    }
    $array=array(
       
    "name" => "Chuong",
       
    "level" => "1",
    );
    $json_en json_encode($array);
    debug($json_en); // a:2:{s:4:"name";s:6:"Chuong";s:5:"level";s:1:"1";}

    $json_de json_decode($json_en);
    debug($json_de);
    /* xuất ra
    stdClass Object(
       [name] => Chuong
       [level] => 1)
    */
    // Như chúng ta thấy $json_de là đối tượng. Vậy nếu muốn lấy giá trị thì chúng ta phải ghi như sau
    $name $json_de->name;
    $level $json_de->level;
    echo 
    "Name : $name <br />";
    echo 
    "Level : $level <br />"

  8. #7
    Moderator 2webvn.com's Avatar
    Ngày tham gia
    27-03-2013
    Bài viết
    203
    Cảm ơn
    24
    Được cảm ơn 119 trong 81 bài viết
    - Thêm 1 tí nữa nè

    PHP Code:

    json_decode
    ($varTRUE); // Cái này sẽ ra array(); 

  9. The Following User Says Thank You to 2webvn.com For This Useful Post:

    PhanNguyenChuong (17-07-2013)

Chia sẽ và Bình Luận chủ đề Bạn chọn Giải pháp Lưu trữ Array Serialize or json ?? trên facebook

Các Chủ đề tương tự

  1. Bác nào biết về Json cho mình hỏi chút
    Bởi binkutehehe trong diễn đàn Hỏi đáp
    Trả lời: 0
    Bài cuối: 12-11-2013, 02:24 PM
  2. Bác nào biết join 3 bảng với nhau bằng cách xử lý array k.
    Bởi binkutehehe trong diễn đàn Hỏi đáp
    Trả lời: 1
    Bài cuối: 07-11-2013, 10:03 PM
  3. Thêm dữ liệu vào array
    Bởi vdhoangson trong diễn đàn Hỏi đáp
    Trả lời: 2
    Bài cuối: 23-09-2013, 09:54 PM
  4. Array Helper - codeigniter
    Bởi tinhphaistc trong diễn đàn Helper Reference
    Trả lời: 1
    Bài cuối: 31-03-2013, 08:56 PM

Các từ khóa xuất hiện trên google của chủ đề

http:www.forum.codeigniter.vnshowthread.php208-Ban-chon-Giai-phap-Luu-tru-Array-Serialize-or-json.html

Quyền viết bài

  • Bạn không thể đăng chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi đính kèm
  • Bạn không thể sửa bài
  •