当前位置:首页 » 编程语言 » php二进制文件

php二进制文件

发布时间: 2022-10-22 06:16:00

‘壹’ php关于获取二进制数据流转换为文件的方法

<?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如何将从二进制文件中读取的字节转换为数字

bindec函数可转换二进制数为十进制数

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

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

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

‘肆’ php怎样将二进制流存到文件中

整形转化成2二进制可以用base_convert:

$str=0x8000;

echo$str2=base_convert($str,16,2);
echo'<br>';
echobase_convert($str2,2,16);
[code]

字符串文件等可以考虑用pack和unpack转化成二进制

[code=PHP]
$file1='F:/46.gif';//随便拷一个图片作为测试用
$file2='F:/test.txt';//生成的二进制流保存在这个文件里
$file3='F:/47.gif';//由二进制流还原成的文件

$size=filesize($file1);

echo'文件大小为:'.$size;
echo" <br>转化为二进制...";

$content=file_get_contents($file1);
$content=bstr2bin($content);


$fp=fopen($file2,'w');
fwrite($fp,$content);
fclose($fp);

$size2=filesize($file2);

echo'转化成二进制后文件大小为:'.$size2;

$content=bin2bstr($content);

$fp=fopen($file3,'w');
fwrite($fp,$content);
fclose($fp);


functionbin2bstr($input)
//Convertabinaryexpression(e.g.,"100111")intoabinary-string
{
if(!is_string($input))returnnull;//Sanitycheck

//Packintoastring
$input=str_split($input,4);
$str='';
foreach($inputas$v)
{
$str.=base_convert($v,2,16);
}

$str=pack('H*',$str);

return$str;
}

functionbstr2bin($input)
//Binaryrepresentationofabinary-string
{
if(!is_string($input))returnnull;//Sanitycheck

//Unpackasahexadecimalstring
$value=unpack('H*',$input);

//Outputbinaryrepresentation
$value=str_split($value[1],1);
$bin='';
foreach($valueas$v)
{
$b=str_pad(base_convert($v,16,2),4,'0',STR_PAD_LEFT);

$bin.=$b;
}

return$bin;
}

‘伍’ php接收二进制文件怎么替换里面的内容

将文件定位到你存整数/字符串的位置,读取出来再转换就行。例如byte[]buf=newbyte[4];fs.Read(buf,0,4);Console.WriteLine(BitConverter.ToInt32(buf));

‘陆’ php里面如何取文件(可安全用于二进制文件)

可以使用文件函数fread

‘柒’ php接收二进制文件怎么替换里面的内容

php接收二进制文件怎么替换里面的内容
php接收二进制文件如下:
<?php
header('Content-type: text/html; charset=utf-8');
error_reporting(0);
$filename = $_GET["filename"];
$filesize = $_GET["filesize"];

$xmlstr = $GLOBALS[HTTP_RAW_POST_DATA];//$_POST["data"];//
if(empty($xmlstr)) $xmlstr = file_get_contents('php://input');

$raw = $xmlstr;//得到post过来的二进制原始数据
$file = fopen("./upload/".$filename,"w");//打开文件准备写入
fwrite($file,$raw);//写入
fclose($file);//关闭
?>

接收的二进制文件中非标准字符(>0x7F)的字节被替换为三个字节,比如E2替换为EF 9F A2
现在我想在Php接收到文件之后还原回去,把EF 9F A2替换为E2,请问这个怎么实现?

非常感谢!
PHP 二进制

------解决方案--------------------
他的数据转换规则是这样的:
文件头不变,文件头多长不清楚,图上到0050h都一样的
<=7F的字节,因为utf-8也一样,可以认为也转换了utf-8
>=80的字节,高位加上F7,再转utf-8,例如E2就变成F7E2然后转utf-8成为EF 9F A2

至少他图中E2/FB/91/B2/81...都满足这个规则
------解决方案--------------------
本帖最后由 xuzuning 于 2013-05-02 15:35:02 编辑
用正则可这样写
假定数据已把存在变量 $s 中,则
$s = preg_replace_callback('/[\xef]../', 'foo', $s);

function foo($r) {

$c = (ord($r[0]{1}) & 0x03) << 6;

$c += (ord($r[0]{2}) & 0x3f);

return chr($c);

}

‘捌’ php如何生成二进制流文件

参考代码:
<?php

$file="images/login.png";
$content = $GLOBALS['HTTP_RAW_POST_DATA'];
if(empty($content)){
$content = file_get_contents('php://input');
}
$result = file_put_contents($file, $content, true);
var_mp($result);

?>

热点内容
密码编译找规律 发布:2025-07-10 09:18:10 浏览:511
电影视频缓存后 发布:2025-07-10 09:16:48 浏览:892
服务器搭建需要哪些东西 发布:2025-07-10 09:15:23 浏览:801
无限密码怎么改 发布:2025-07-10 09:14:32 浏览:104
coc按键精灵脚本 发布:2025-07-10 09:12:40 浏览:311
excel表格ftp函数 发布:2025-07-10 09:05:50 浏览:276
u2game的解压密码 发布:2025-07-10 09:05:14 浏览:597
c语言编译器ide苹果下载 发布:2025-07-10 09:05:13 浏览:294
andftp端口 发布:2025-07-10 08:57:04 浏览:607
战地一有什么不用加速器的服务器 发布:2025-07-10 08:51:33 浏览:405