PHP unpack() Function












❮ مرجع متفرقه PHP




مثال


داده‌ها را از یک رشته باینری باز کنید:



$data = "PHP";

print_r(unpack("C*",$data));

?>

این را خودتان امتحان کنید »




تعریف و استفاده


عملکرد unpack() داده ها را از یک رشته باینری باز می کند.





نحو



باز کردن (قالب، داده ها)


مقادیر پارامتر













را مشخص می کند





پارامتر توضیح
قالب لازم است. فرمت مورد استفاده در هنگام باز کردن بسته بندی داده ها را مشخص می کند.


مقادیر ممکن:



  • a - رشته ای با NUL-padded

  • A - رشته با فضای خالی

  • h - رشته هگزا، ابتدا نوک پایین

  • H - رشته شش گوش، ابتدا نوک بالا

  • c - علامت امضا شده

  • C - char بدون امضا

  • s - کوتاه امضا شده (همیشه 16 بیت، ترتیب بایت ماشین)

  • S - کوتاه بدون علامت (همیشه 16 بیت، ترتیب بایت ماشین)

  • n - کوتاه بدون علامت (همیشه 16 بیت، ترتیب بایت اندیان بزرگ)

  • v - کوتاه بدون علامت (همیشه 16 بیت، ترتیب بایت انددیان کمی)

  • i - عدد صحیح امضا شده (اندازه و ترتیب بایت وابسته به ماشین)

  • I - عدد صحیح بدون علامت (اندازه و ترتیب بایت وابسته به ماشین)

  • l - امضای طولانی (همیشه 32 بیت، ترتیب بایت ماشین)

  • L - طولانی بدون علامت (همیشه 32 بیت، ترتیب بایت ماشین)

  • N - طولانی بدون علامت (همیشه 32 بیت، ترتیب بایت اندیان بزرگ)

  • V - طولانی بدون علامت (همیشه 32 بیت، ترتیب بایت انددیانی کمی)

  • q - امضای طولانی (همیشه 64 بیت، ترتیب بایت ماشین)

  • Q - طولانی بدون امضا (همیشه 64 بیت، ترتیب بایت ماشین)

  • J - طولانی بدون علامت (همیشه 64 بیت، ترتیب بایت اندیان بزرگ)

  • P - طولانی بدون علامت (همیشه 64 بیت، ترتیب بایت انددیانی کمی)

  • f - شناور (اندازه و نمایش وابسته به ماشین)

  • g - شناور (اندازه وابسته به ماشین، ترتیب کمی بایت اندیان)

  • G - شناور (اندازه وابسته به ماشین، ترتیب بایت اندیان بزرگ)

  • d - دوتایی (اندازه و نمایش وابسته به ماشین)

  • e - دوتایی (اندازه وابسته به ماشین، ترتیب کمی بایت اندیان)

  • E - دو برابر (اندازه وابسته به ماشین، ترتیب بایت اندیان بزرگ)

  • x - بایت NUL

  • X - یک بایت پشتیبان گیری کنید

  • Z - رشته NUL-padded

  • @ - NUL-fill تا مطلق


داده لازم است. داده های باینری را که باید باز شوند
offset اختیاری. مشخص می کند که از کجا باز کردن بسته بندی شروع شود. پیش فرض 0 است.












جزئیات فنی














مقدار بازگشتی: آرایه را در صورت موفقیت یا FALSE را در صورت شکست برمی‌گرداند.
نسخه PHP: 4+
تغییر: PHP 7.2 - float and double اکنون از اندیان بزرگ و کوچک پشتیبانی می کند.
PHP
7.1 - پارامتر offset اختیاری اضافه شد.
PHP 5.5.0 - تغییرات زیر برای سازگاری Perl انجام شد:
کد "a" اکنون بایت های NULL انتهایی را حفظ می کند.
کد "A" اکنون تمام فضای خالی ASCII انتهایی را حذف می کند.
کد "Z" برای رشته های NULL-padded اضافه شده است و بایت های NULL انتهایی را حذف می کند.




نمونه های بیشتر



مثال


باز کردن بسته بندی داده ها:



$data = "PHP";

print_r(unpack("C*myint",$data));

?>

این را خودتان امتحان کنید »



مثال


باز کردن بسته بندی داده ها:



$bin = pack("c2n2",0x1234,0x5678,65,66);

print_r(unpack("c2chars/n2int",$bin));

?>

این را خودتان امتحان کنید »




❮ مرجع متفرقه PHP