فك ضغط البيانات من سلسلة ثنائية:
<?php$data = "PHP";print_r(unpack("C*",$data));?>تقوم الدالة unpack() بتفريغ البيانات من سلسلة ثنائية.
فك (التنسيق والبيانات)
المعلمة | يصف |
---|---|
شكل | مطلوب. يحدد التنسيق المستخدم عند تفريغ البيانات. القيم المحتملة: أ - سلسلة مبطنة NUL أ - سلسلة مليئة بالمسافة h - سلسلة سداسية عشرية، البتة ذات الترتيب المنخفض أولاً H - سلسلة سداسية عشرية، البتة ذات الترتيب العالي أولاً ج - حرف موقّع ج - حرف غير موقع s - موقعة قصيرة (دائمًا 16 بت، ترتيب بايت الآلة) S - اختصار غير موقع (دائمًا 16 بت، ترتيب بايت الآلة) n - قصير غير موقع (دائمًا 16 بت، ترتيب بايت كبير) v - قصير غير موقع (دائمًا 16 بت، ترتيب بايت صغير من endian) i - عدد صحيح موقّع (يعتمد على حجم الجهاز وترتيب البايت) I - عدد صحيح غير موقع (يعتمد على حجم الجهاز وترتيب البايت) l - موقع طويل (دائمًا 32 بت، ترتيب بايت الآلة) L - طويلة غير موقعة (دائمًا 32 بت، ترتيب بايت الآلة) N - طويلة غير موقعة (دائمًا 32 بت، ترتيب بايت كبير) V - طويلة غير موقعة (دائمًا 32 بت، ترتيب بايت صغير) و - تعويم (يعتمد على حجم الماكينة وتمثيلها) د - مزدوج (يعتمد على حجم الماكينة وتمثيلها) س - بايت NUL X - النسخ الاحتياطي بايت واحد Z - سلسلة مبطنة NUL @ - NUL يملأ الموضع المطلق |
بيانات | مطلوب. يحدد البيانات الثنائية التي سيتم تفكيكها. |
قيمة الإرجاع: | إرجاع مصفوفة إذا نجحت، أو FALSE إذا فشلت. |
---|---|
نسخة PHP: | 4+ |
سجل التحديث: | اعتبارًا من PHP 5.5.0، تم إجراء التغييرات التالية لتوافق Perl: يحتفظ الكود "a" بالبايت NULL اللاحق. يزيل الكود "A" كافة المسافات البيضاء الزائدة في ASCII. تمت إضافة رمز "Z" لسلاسل NUL المبطنة وإزالة البايتات NULL الزائدة. |
فك ضغط البيانات:
<?php$data = "PHP";print_r(unpack("C*myint",$data));?>فك ضغط البيانات:
<?php$bin = pack("c2n2",0x1234,0x5678,65,66);print_r(unpack("c2chars/n2int",$bin));?>