导航:首页 > 编程语言 > php二进制

php二进制

发布时间:2022-01-14 17:56:40

‘壹’ 批处理 php 二进制进位算法

//算法分析:我们想要实现的是数字相加,每位数的最大值为4,超过4进1位,即5进制。
//如果,数字的最后一位不等于4,那么直接相加并输出;如果最后一位是4,将这一位置1,并且进位1
//进位的1必须跟前面的数字进行相加,这就形成了一个递归,递归的条件是最后一位等于4
//为了跟前面的数字进行相加,我们必须先对原数字进行截取,比如数字1114,进位后应该得到1121
//代码是这样处理的:先把4置1,然后截取111,递归过程中执行111+1=112,然后返回112,并更上一次递归中得到的和的最后一位
//拼接成一个新的字符串:1121

‘贰’ 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怎样将二进制流存到文件中

整形转化成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 数组 如何二进制转换

//使用serialize/unserialize
$array=array();
$array['key']='website';
$array['value']='url';
$a=serialize($array);
echo$a;
unset($array);
$a=unserialize($a);
print_r($a);

‘伍’ PHP中怎么以二进制形式表示数字

需要准备的材料分别是:电脑、php编辑器、浏览器。

1、首先,打开php编辑器,新建php文件,例如:index.php。

‘陆’ php 怎么把字符串转化为二进制流

header("Content-type:text/html;charset=utf-8");

/**
*将字符串转换成二进制
*@paramtype$str
*@returntype
*/
functionStrToBin($str){
//1.列出每个字符
$arr=preg_split('/(?<!^)(?!$)/u',$str);
//2.unpack字符
foreach($arras&$v){
$temp=unpack('H*',$v);
$v=base_convert($temp[1],16,2);
unset($temp);
}

returnjoin('',$arr);
}

/**
*讲二进制转换成字符串
*@paramtype$str
*@returntype
*/
functionBinToStr($str){
$arr=explode('',$str);
foreach($arras&$v){
$v=pack("H".strlen(base_convert($v,2,16)),base_convert($v,2,16));
}

returnjoin('',$arr);
}

‘柒’ 在PHP中,字母a和字母A的二进制,八进制,十进制,十六进制的写法是什么

字母"a":

二进制:1100001

八进制:141

十进制:97

十六进制:61

你可以通过以下代码来查看:

<?php
$num=ord('a');
//二进制
echodecbin($num),',';
//八进制
echodecoct($num),',';
//十进制
echo$num,',';
//十六进制
echodechex($num),',';

‘捌’ PHP 什么是二进制字符串

二进制字符串是 字节字符串。非二进制字符串是字符字符串
这个体现在mysql数据库中为:
BINARY和VARBINARY类类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
BLOB 列被视为二进制字符串(字节字符串)。TEXT列被视为非二进制字符串(字符字符串)。

‘玖’ php中能输出二进制数据么

可以的。
可以用一个十进制二进制的函数decbin(),生成的是一个字符串,直接输出即可

阅读全文

与php二进制相关的资料

热点内容
安卓手机有噪音怎么回事 浏览:979
ios程序员饱和 浏览:4
51单片机控制pwm程序 浏览:299
汽车压缩机串气可以修么 浏览:633
30天学会全部语法pdf 浏览:52
java反编译修补bug 浏览:614
如何修改服务器ftp地址 浏览:119
云服务器如何用c盘分d盘 浏览:597
苹果的单片机 浏览:804
程序员喝麻辣烫 浏览:140
安卓怎么玩微软的游戏 浏览:54
安卓如何在桌面同时操作好几个app 浏览:72
美国app在哪里看 浏览:320
java文件内容追加 浏览:622
为什么下载压缩包会变成文档 浏览:727
自我安慰程序员的话 浏览:369
android备份程序 浏览:713
建设银行亚洲手机app哪里下载 浏览:502
桌面有一个文件夹图标变透明了 浏览:382
vb文件如何加密 浏览:238