从二进制数据中删除行

时间:2012-02-03 14:07:33

标签: php binary

如何从二进制数据中删除一些行(“\ r \ n”): 例如,如果我有$ data这是我从数据库中获取的二进制文件的内容,并希望从中删除前五行。

如何在php中完成?

2 个答案:

答案 0 :(得分:2)

// Load the file into memory
$fileData = file_get_contents('myfile.bin');

// Split it by CRLF sequences
$fileData = explode("\r\n", $fileData);

// Remove the first 5 lines
$fileData = array_slice($fileData, 5);

// Turn it back into a string
$fileData = implode("\r\n", $fileData);

// Write it back to the file
file_put_contents('myfile.bin', $fileData);

或者,在一行中:

file_put_contents('myfile.bin', implode("\r\n", array_slice(explode("\r\n", file_get_contents('myfile.bin')), 5)));

但是如果你想用“二进制数据”来做这件事,我会怀疑它是否真的是二进制数据。

答案 1 :(得分:1)

如果你只是想摆脱字符串开头的所有空行,你可以使用ltrim()PHP Manual ltrim但是如果这些行不是空的并且你知道你想要完全摆脱5然后这个preg_replace应该可以做到这一点:

$newData = preg_replace('/(.*)\r\n/', '', $data, 5);

[编辑:] 想想看,这可能根本不适用于二进制数据,但你可以尝试一下。