php二进制包(php 二进制转字符串)
华为云服务器特价优惠火热进行中! 2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。
合作流程: |
本篇文章给大家谈谈php二进制包,以及php 二进制转字符串对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
微信号:cloud7591如需了解更多,欢迎添加客服微信咨询。
复制微信号
本文目录一览:
- 1、PHP 什么是二进制字符串
- 2、PHP中怎么以二进制形式表示数字?
- 3、php接收二进制文件怎么替换里面的内容
- 4、php怎样将二进制流存到文件中?
- 5、急求php中如何存取二进制文件(如AutoCAD图)?分不够就加!!!
- 6、在PHP中,字母a和字母A的二进制,八进制,十进制,十六进制的写法是什么?
PHP 什么是二进制字符串
二进制字符串是
字节字符串。非二进制字符串是字符字符串
这个体现在
mysql数据库
中为:
BINARY和VARBINARY类类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有
字符集
,并且排序和比较基于列值字节的数值值。
BLOB
列被视为二进制字符串(字节字符串)。TEXT列被视为非二进制字符串(字符字符串)。
PHP中怎么以二进制形式表示数字?
需要准备的材料分别是:电脑、php编辑器、浏览器。
1、首先,打开php编辑器,新建php文件,例如:index.php。
2、以二进制数1110101为例,在index.php中,输入代码:$a = 0b1110101;echo $a;。
3、浏览器运行index.php页面,此时会看到二进制数1110101被成功表示,并以十进制形式打印了出来。
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';
echo base_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 "\nbr转化为二进制 ...";
$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);
function bin2bstr($input)
// Convert a binary expression (e.g., "100111") into a binary-string
{
if (!is_string($input)) return null; // Sanity check
// Pack into a string
$input = str_split($input, 4);
$str = '';
foreach ($input as $v)
{
$str .= base_convert($v, 2, 16);
}
$str = pack('H*', $str);
return $str;
}
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中如何存取二进制文件(如AutoCAD图)?分不够就加!!!
?php
$user='root';
$password='root';
$db='test';
$connect=mysql_connect('localhost',$user,$password);
mysql_set_charset('utf8',$connect);
mysql_select_db($db);
$photo = "0x".bin2hex(file_get_contents("./test.jpg"));
$sql="INSERT INTO `test`.`test` (`photo`) VALUES ($photo);";//$photo不需要用引号,切记
mysql_query($sql);
//$result=mysql_query("SELECT *
//FROM `test`
//LIMIT 0 , 30");
//$img=mysql_fetch_array($result);
//echo $img['photo'];
?
在PHP中,字母a和字母A的二进制,八进制,十进制,十六进制的写法是什么?
字母"a":
二进制:1100001
八进制:141
十进制:97
十六进制:61
你可以通过以下代码来查看:
?php
$num = ord('a');
//二进制
echo decbin($num),',';
//八进制
echo decoct($num),',';
//十进制
echo $num,',';
//十六进制
echo dechex($num),',';
关于php二进制包和php 二进制转字符串的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
