Cách chuyển đổi mảng byte thành chuỗi trong PHP

Vào Thứ Năm, ngày 16 tháng 6 năm 2011 lúc 4. 52 giờ sáng, Tarun Aggarwal
>
> Xin chào,
>
> Tôi muốn biết làm thế nào để tôi có thể .
>

$ret = giải nén("H*hex", implode("",$dataArr));
echo "0x". $ret['hex'];
// ?

>
> Xin hãy giúp đỡ
> Cảm ơn
>
> - . Một công ty phát triển ứng dụng doanh nghiệp sử dụng các công nghệ nguồn mở cho các doanh nghiệp vừa và nhỏ ngày nay.
> This group is managed and maintained by the development staff at 360 PSG. An enterprise application development company utilizing open-source technologies for todays small-to-medium size businesses.
>
> Để biết thông tin hoặc hỗ trợ dự án, vui lòng truy cập.
> http. //www. 360psg. com
>
> Bạn nhận được thư này vì bạn đã đăng ký vào nhóm Google Groups "Professional PHP Developers".
> Để đăng lên nhóm này, hãy gửi email tới Giáo sư. @nhóm Google. com
> Để hủy đăng ký khỏi nhóm này, hãy gửi email tới Professional-P. @nhóm Google. com
> Để có thêm tùy chọn, hãy truy cập nhóm này tại http. //các nhóm. Google. com/group/Professional-PHP

❮ Tham khảo Linh tinh PHP

Ví dụ

Giải nén dữ liệu từ một chuỗi nhị phân

$data = "PHP";
print_r(unpack("C*",$data));
?>

Tự mình thử »


Định nghĩa và cách sử dụng

Hàm unpack() giải nén dữ liệu từ một chuỗi nhị phân


cú pháp

Giá trị tham số

Tham sốMô tảĐịnh dạngBắt buộc. Chỉ định định dạng sẽ sử dụng khi giải nén dữ liệu

Những giá trị khả thi

  • a - Chuỗi đệm NUL
  • A - Chuỗi đệm SPACE
  • h - Chuỗi lục giác, mức thấp nhất trước
  • H - Chuỗi lục giác, cao nibble đầu tiên
  • c - ký tự
  • C - ký tự không dấu
  • s - ký ngắn (luôn là 16 bit, thứ tự byte máy)
  • S - unsigned short (luôn là 16 bit, thứ tự byte máy)
  • n - unsigned short (luôn luôn là 16 bit, thứ tự byte cuối lớn)
  • v - unsigned short (luôn luôn là 16 bit, thứ tự byte cuối nhỏ)
  • i - số nguyên đã ký (kích thước phụ thuộc vào máy và thứ tự byte)
  • I - số nguyên không dấu (kích thước phụ thuộc vào máy và thứ tự byte)
  • l - ký dài (luôn là 32 bit, thứ tự byte máy)
  • L - dài không dấu (luôn là 32 bit, thứ tự byte máy)
  • N - dài không dấu (luôn là 32 bit, thứ tự byte cuối lớn)
  • V - dài không dấu (luôn là 32 bit, thứ tự byte cuối nhỏ)
  • q - long long đã ký (luôn là 64 bit, thứ tự byte máy)
  • Q - long long không dấu (luôn là 64 bit, thứ tự byte máy)
  • J - dài không dấu (luôn luôn là 64 bit, thứ tự byte cuối lớn)
  • P - dài không dấu dài (luôn luôn là 64 bit, thứ tự byte cuối nhỏ)
  • f - float (kích thước và biểu diễn phụ thuộc vào máy)
  • g - float (kích thước phụ thuộc vào máy, thứ tự byte cuối nhỏ)
  • G - float (kích thước phụ thuộc vào máy, thứ tự byte cuối lớn)
  • d - double (kích thước và biểu diễn phụ thuộc vào máy)
  • e - double (kích thước phụ thuộc vào máy, thứ tự byte cuối nhỏ)
  • E - double (kích thước phụ thuộc vào máy, thứ tự byte cuối lớn)
  • x - NUL byte
  • X - Sao lưu một byte
  • Z - Chuỗi đệm NUL
  • @ - điền NUL vào tuyệt đối
yêu cầu dữ liệu. Chỉ định dữ liệu nhị phân được giải nénoffsetOptional. Chỉ định nơi bắt đầu giải nén từ. Mặc định là 0

chi tiết kỹ thuật

Giá trị trả về. Trả về một mảng nếu thành công, hoặc FALSE nếu thất bại. Phiên bản PHP. 4+Nhật ký thay đổi. PHP7. 2 - float và double hiện hỗ trợ cả endian lớn và nhỏ.
PHP 7. 1 - Đã thêm tham số offset tùy chọn.
PHP 5. 5. 0 - Các thay đổi sau được thực hiện để tương thích với Perl. Mã "a" hiện giữ lại các byte NULL ở cuối.
Mã "A" hiện loại bỏ tất cả các khoảng trắng ASCII ở cuối.
Mã "Z" đã được thêm vào cho các chuỗi đệm NULL và loại bỏ các byte NULL ở cuối.

Thêm ví dụ

Ví dụ

Giải nén dữ liệu

$data = "PHP";
print_r(unpack("C*myint",$data));
?>

Tự mình thử »

Ví dụ

Giải nén dữ liệu

$bin = pack("c2n2",0x1234,0x5678,65,66);
print_r(unpack("c2chars/n2int",$bin));
?>

Tự mình thử »


❮ Tham khảo Linh tinh PHP

Để chuyển mảng thành chuỗi, sử dụng khái niệm implode() trong PHP. Giả sử sau đây là mảng của chúng ta -

$sentence = array('My','Name','is','John');

Để chuyển đổi mảng trên thành chuỗi -

,implode(" ",$sentence)

Ví dụ

Bản thử trực tiếp





đầu ra

The string is = My Name is John

Bây giờ chúng ta hãy xem một mã PHP khác trong đó chúng ta cũng sẽ thêm dấu phân cách -

Ví dụ

Bản thử trực tiếp





đầu ra

The string is = One*Two*Three

Cách chuyển đổi mảng byte thành chuỗi trong PHP


Cách chuyển đổi mảng byte thành chuỗi trong PHP

This is about the last example of my previous post. For the sake of clarity, I'm including again here the example, which expands the one given in the formal documentation:

  $binarydata = "AA\0A";
  $array = unpack("c2chars/nint", $binarydata);
  foreach ($array as $key => $value)
     echo "\$array[$key] = $value
\n";
?>

________số 8

$array[chars1] = 65
$array[chars2] = 65
$array[int] = 65

,implode(" ",$sentence)
0

,implode(" ",$sentence)
1

,implode(" ",$sentence)
2

,implode(" ",$sentence)
3