PHP关于获取二进制数据流转换为文件的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP关于获取二进制数据流转换为文件的方法相关的知识,希望对你有一定的参考价值。

对方通过POST传送过来一个JSON格式的数组,数组内容为一个文件的二进制数据流,我获取到后该怎么解析成为一个文件并保存到目标路径呢

参考技术A $content = $_POST['data'];
$fp = fopen('/tmp/newfile.bin','w');
fwrite($fp,$content);

以上例子是在data参数上传二进制,并保存到/tmp/newfile.bin中,解析json用json_decode,然后把二进制的那个值赋给content就可以

参考技术B <?php
$bin= bstr2bin($json);
file_put_contents('../somefold/',$bin);

function bstr2bin($input)
// Binary representation of a binary-string
if (!is_string($input)) return null; // Sanity check
// Unpack as a hexadecimal string
$value = unpack('H*', $input);

// Output binary representation
$value = str_split($value[1], 1);
$bin = '';
foreach ($value as $v)
$b = str_pad(base_convert($v, 16, 2), 4, '0', STR_PAD_LEFT);

$bin .= $b;


return $bin;

php将图片文件转换成二进制输出的方法

参考技术A 本文实例讲述了php将图片文件转换成二进制输出的方法。分享给大家供大家参考。具体实现方法如下:
1
2
3
4
header(
Content-type:
image/jpeg);
$PSize
=
filesize('1.jpg');
$picturedata
=
fread(fopen('1.jpg',
r),
$PSize);
echo
$picturedata;
就这么简单4行代码,就将图片以二进制流的形式输出到客户端了,和打开一张图片没有任何区别。
这里需要注意的是,发送的header要根据具体情况而定,不一定都是image/jpeg。JPG的就是image/jpeg,但PNG的就是image/png.不同类型的图片输出不同的头部。

以上是关于PHP关于获取二进制数据流转换为文件的方法的主要内容,如果未能解决你的问题,请参考以下文章

怎样在PHP中把16进制HEX数据转换为2进制数据呢?

PHP如何将从二进制文件中读取的字节转换为数字

php的进制转换

JAVA如何将二进制数转换成文件?

1112 进制数转换

将文件转换为二进制(11111111110)然后执行反向路径以获取图像