سؤال

لديّ Witch Witch يستخدم تكوين نمط التنسيق الثنائي ، وعلي أن أقوم بإنشاء تلك الملفات على نحو حافل.

يجب أن تتكون بنية الملف من عدد من إعدادات التكوين (1 لكل معلمة) كل من النموذج:

  • يكتب
  • طول
  • قيمة

أين:

  • النوع: هو معرف واحد من الأوكتيت يحدد المعلمة
  • الطول: هو ثماني واحد يحتوي على طول حقل القيمة في الثمانيات (لا يشمل حقول النوع والطول)
  • القيمة: من واحد إلى 254 ثمارية تحتوي على القيمة المحددة للمعلمة

لدي جدول مقابل

 Type_code[int] => { Type_length[int] => Value[int/string/hex/etc.] }

كيفية تحليل هذا الجدول على هذا التنسيق الثنائي؟ والطريقة الثانية ، كيفية تحليل هذا الملف الثنائي ، إلى تنسيق صفيف PHP؟

هل كانت مفيدة؟

المحلول

هناك رزمة/أفرغ الوظائف التي يمكن أن تترجم بين مختلف تنسيقات الثنائي/السداسي/الأوكتال/السلسلة. اقرأ جزءًا كبيرًا من الملف ، واستخلص البتات اللازمة مع تفريغ ، والعمل من هناك.

$fh = fopen('data.txt', 'rb'); // b for binary-safe

// read 2 bytes, extract code/length, then read $length more bytes to get $value
while(($data = fread($fh, 2)) !== EOF)) { 
    list($code, $length) = unpack('CC', $data);
    $data = fread($fh, $length);

    // do stuff
}
fclose($fh);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top