zoukankan      html  css  js  c++  java
  • PHP pack与unpack函数

    pack() 格式字符串

    符号 备注
    a NULL填充字符串
    A SPACE填充字符串
    h 十六进制字符串, 底四位
    H 十六进制字符串, 高四位
    c 有符号字符
    C 无符号字符
    s 有符号短整型 (16位, 主机字节序)
    S 无符号短整型 (16位, 主机字节序)
    n 无符号短整型 (16位, big endian byte order)
    v 无符号短整型 (16位, little endian byte order)
    i 有符号整型 (machine dependent size and byte order)
    I 无符号整型 (machine dependent size and byte order)
    l 有符号长整型 (32位, machine byte order)
    L 无符号长整型 (32位, machine byte order)
    N 无符号长整型 (32位, big endian byte order)
    V 无符号长整型 (32位, little endian byte order)
    f 单晶实型 (machine dependent size and representation)
    d 双晶实型 (machine dependent size and representation)
    x NUL byte
    X Back up one byte
    @ NUL-fill to absolute position

    范例1

    <?php
    echo pack("C3",80,72,80);
    输出: PHP
    注:按参数顺序打包成3个无符号字符
    ?>
    范例2
    <?php
    echo pack("C*",80,72,80,72,72,72,72,72);
    输出:PHPHHHHH
    注: *号代表匹配任意个
    ?>

    范例3

    <?php
    $text = "呵呵呵呵呵";
    $len = strlen($text);
    echo pack("a{$len}", $text);
    注:把$len长个字符打包,这里的$len是字节长度
    ?>

    范例4

    <?php
    $arr_unpack = unpack('Nlen/Ntype/Nsub/Ntotal/a*content', $buf);
    注:解包时如果要取出多个可以用"/"分割
    ?>
  • 相关阅读:
    《架构之美》读后感(二)
    《架构之美》读后感(一)
    《代码大全2》阅读笔记03
    《代码大全2》阅读笔记02
    《代码大全2》阅读笔记01
    学习进度报告(十四)
    软件方法阅读笔记03
    第二讲
    1.26 十讲第一讲
    1.23
  • 原文地址:https://www.cnblogs.com/phpfans/p/2227821.html
Copyright © 2011-2022 走看看