如何从二进制数据中删除一些行(“\ r \ n”): 例如,如果我有$ data这是我从数据库中获取的二进制文件的内容,并希望从中删除前五行。
如何在php中完成?
答案 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);
[编辑:] 想想看,这可能根本不适用于二进制数据,但你可以尝试一下。