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]];
?>
Đị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ệuNhữ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
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]];
?>
Ví dụ
Giải nén dữ liệu
$bin = pack["c2n2",0x1234,0x5678,65,66];
print_r[unpack["c2chars/n2int",$bin]];
?>
Để 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
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