本文介绍了用PHP解压缩二进制文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 <?php$file = "/tmp/kok.bin";$fp = fopen ($file, 'rb') or die ("File $file cannot be opened.");$data = fread ($fp, filesize($file)); or die ("Could not read data from file $file");# Create the format for unpacking the header data$header_format = 'Cid/' . # Grab 1 byte 'Cnumber/' . # Grab 1 byte 'CIdentifier/' . # Grab 1 byte 'CTime/' . # Grab 8 bytes 'L# of Records/' . # Grab 1 byte , number of target in a packet 'SHeader Size/' . # Grab 4 bytes 'SRecord Size'; # Grab 2 bytes# Unpack the header data$header = unpack ($header_format, $data);$targetRecord =$header_format['L# of Records']; # Create the format for unpacking the data that describes the format of the records in the file$record_format = 'CField Name/' . # Grab 1 byte 'fField Type1/' . # Grab 4 bytes 'fField Type2/' . # Grab 4 bytes 'fField Type3/' . # Grab 4 bytes 'fField number/' . # Grab 4 bytes 'fdistance/' . # Grab 4 bytes 'CField id /' # Grab 1 byte 'iField Precision/' # Grab 4 bytes the size of the Field Data 'SField Data'; # Grab x bytes for ($offset = 0; $offset < strlen ($data); $offset ++) { print_r (unpack ("$record_format", $data));}?> 1 first unpack $header_format to get 'L# of Records' for every packet.(have a total of 200 packets)2 unpack $record_format 'L# of Records' times$record_format = CField Name/' . # Grab 1 byte 'fField Type1/' . # Grab 4 bytes 'fField Type2/' . # Grab 4 bytes 'fField Type3/' . # Grab 4 bytes 'fField number/' . # Grab 4 bytes 'fdistance/' . # Grab 4 bytes 'CField id /' # Grab 1 byte 'iField Precision/' # Grab 4 bytes 'SField Data'; # Grab x bytes 3 Step 1 and 2 are for one packet from the file.4 Repeat 1-3 until end of file is reached. 我的尝试: What I have tried:for ($offset = 0; $offset < strlen ($data); $offset += 32) { $unpackeddata= unpack ("@$offset/$header_format", $data); print ""; print_r ($unpackeddata); print "";} 推荐答案 file = / tmp / kok.bin; file = "/tmp/kok.bin"; fp = fopen(fp = fopen ( file, ' rb') 或 die( 文件 file, 'rb') or die ("File 这篇关于用PHP解压缩二进制文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
10-20 12:23