بسته بندی باینری (pack)
می خواهی داده را فشرده و باینری کنی؟ «باینری (Binary)» یعنی رشته ای از بایت ها. تابع (Function) pack داده ها را طبق «قالب (Format)» تبدیل می کند. خروجی، یک رشته باینری است.
pack چیست و چه می دهد؟
تابع pack() با یک رشته قالب، آرگومان ها را بسته بندی می کند. هر حرف قالب نوع داده را مشخص می کند. نتیجه، رشته باینری است. این رشته برای کارهای سطح پایین مفید است.
مثال پایه: سه بایت بدون علامت
<?php
echo pack("C3", 80, 72, 80);
?>
مثال دیگر: تعداد آرگومان ها متغیر
با * یعنی تا انتهای آرگومان ها. اینجا همه به صورت بایت بسته می شوند.
<?php
echo pack("C*", 80, 72, 80);
?>
کدهای قالب پرکاربرد
aیاZ: رشته پرشده با NUL.A: رشته پرشده با فاصله.hوH: رشته هگز؛ نیمه نیبل پایین یا بالا.C: بایت بدون علامت.nوv: unsigned short به ترتیب بیگ و لیتل.NوV: unsigned long بیگ و لیتل.x،X،@: درج NUL، یک بایت عقب، یا پرکردن تا موقعیت.
گام های عملی
- قالب مناسب را انتخاب کن.
- آرگومان ها را به ترتیب بده.
- خروجی باینری را ذخیره یا ارسال کن.
- در صورت نیاز، حروف قالب را تغییر بده.
نکته: خروجی ممکن است قابل چاپ نباشد. برای نمایش، هگز بگیر یا ذخیره کن.
هشدار: ترتیب بایت ها مهم است. بین N و V دقت کن.
جمع بندی سریع
packداده را باینری می کند.- قالب، نوع بسته بندی را مشخص می کند.
Cیعنی بایت بدون علامت.N/Vترتیب بایت را تعیین می کنند.- خروجی همیشه رشته باینری است.