php接收二进制文件怎么替换里面的内容
整形转化成 2二进制 可以用 base_convert:
$str = 0x8000; echo $str2 = base_convert($str, 16, 2);echo '';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 "
转化为二进制 ..."; $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;}
bindec函数可转换二进制数为十进制数
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);
}
hppg中文是什么意思?
hppg是一个英文缩写,其全称为“Hewlett-Packard Printer Graphics”,中文翻译为“惠普打印机图形”。hppg文件是一种由惠普打印机生成的二进制文件格式,主要用于保存打印机生成的图形和文本。hppg文件格式广泛应用于惠普打印机和其他类型的打印机上。它可以保存打印机生成的图形和文本,具有高度压缩和高效...
HP5100打印机固件怎么升级?要详细点的
8. 在命令提示符后键入 bin。9. 按 Enter 键。在命令窗口显示 200 种类型设置为“I”,使用二进制模式传输文件消息。10. 键入 put,然后键入文件名(例如,若文件名为 CM6040mfp.efn,则键入 put CM6040mfp.efn)。11. 下载流程开始,产品上的固件随即更新。此过程约需五分钟时间。在流程结束之...
文件格式有那些?有什么区别?
COM可执行的二进制代码系统程序文件,特点非常短小精焊,长度有限制。ASM汇编程序文件为二进制代码文件,可以打个比方,它就像BASIC中的.BAS程序文件一样,为不可执行文件。ASC代码文件。BAK备份文件LIB程序库文件CHK检查磁盘命令CHKDSK发现的目录或文件分配表中的错误,校正系统后的文件。TMP临时文件SYS系统配置文件,最典型的...
关于文件格式的知识?
COM可执行的二进制代码系统程序文件,特点非常短小精焊,长度有限制。 ASM汇编程序文件为二进制代码文件,可以打个比方,它就像BASIC中的.BAS程序文件一样,为不可执行文件。 ASC代码文件。 BAK备份文件 LIB程序库文件 CHK检查磁盘命令CHKDSK发现的目录或文件分配表中的错误,校正系统后的文件。 TMP临时文件 SYS系统配置文...
文件有很多种后缀名,哪位能给我讲讲那些后缀名各代表什么文件?~
bin 二进制文件,其用途依系统或应用而定 bmp Bitmap位图文件,这是微软公司开发Paint的自身格式,可以被多种Windows和Windows NT平台及许多应用程序支持,支持32位颜色,用于为Windows界面创建图标的资源文件格式。 c C 语言源程序文件,在C语言编译程序下编译使用 cab Microsoft制订的压缩包格式,常用于软件的安装程序,...
八位二进制数的最大值所对十进制数为多少??
最大的八位二进制数是11111111 ,用计算器可算出其对应的十进制数是255。二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。参考资料:http:\/\/baike.baidu.com\/link?url=cC6GmtBg-IQm_hpdHz2tIVC...
Java如何把二进制数据转换成图片???
import java.io.FileOutputStream;import java.io.IOException;import sun.misc.BASE64Decoder;public class CodeTest { public static void main(String[] args) throws IOException { String str = "R0lGODlhgwBVAPcAAAAAAAwLBxkGBQ4ODhAQEBsSChUVFS4TDB8eGQkA9koPCDAAzy4mFVgAp2UYC0IqEUYuBVwiDEA...
关于文件格式,有几种 ?
ADA Ada源文件(非-GNAT) ADB Ada源文件主体(GNAT);HP100LX组织者的约定数据库 ADD OS\/2用于引导过程的适配器驱动程序 ADF Amiga磁盘文件 ADI AutoCAD设备无关二进制绘图仪格式 ADM After Dark多模块屏幕保护;Windows NT策略模板 ADP FaxWork用于传真调制解调器的交互安装文件;Astound Dynamite文件 ADR After Dark...
HP t5335 瘦客户机 如何用U盘启动winPE镜像系统?
编辑文件的设置 .ini 以将 useQuickImageMode 设为 0。保存文件。将新的 uBoot 二进制文件复制到 USB 驱动器上的 uBoot 目录。从计算机安全地移除 USB 驱动器 启动 ThinState USB 驱动器,如故障排除指南中“从 USB 闪存驱动器启动”部分所述:http:\/\/bizsupport1.austin.hp.com\/bc\/docs\/...
谁能告诉我所有文件名后缀所对应的文件类型?比如:MP3对应着音乐 谢谢...
ADB Ada源文件主体(GNAT);HP100LX组织者的约定数据库 ADD OS\/2用于引导过程的适配器驱动程序 ADF Amiga磁盘文件 ADI AutoCAD设备无关二进制绘图仪格式 ADM After Dark多模块屏幕保护;Windows NT策略模板 ADP FaxWork用于传真调制解调器的交互安装文件;Astound Dynamite文件 ADR After Dark随机屏幕保护;Smart Address...
毋雄大蒜: php接收二进制文件怎么替换里面的内容 php接收二进制文件如下: header('Content-type: text/html; charset=utf-8'); error_reporting(0); $filename = $_GET["filename"]; $filesize = $_GET["filesize"];$xmlstr = $GLOBALS[HTTP_RAW_POST_...
古交市18539622099: PHP怎么实现替换整个文件内容 - ?
毋雄大蒜: function replace_text($search , $replace , $text){ $content =file_get_contents($text); $res = str_replace($search,$replace,$content); file_put_contents($text,$res); } 外部$this->replace_text('hello', 'hi', '123.php'); 如果是复杂的正则替换 把 str_replace 改成preg_replace ,原理是这样需要过滤,优化操作自己添加
古交市18539622099: PHP如何将从二进制文件中读取的字节转换为数字 - ?
毋雄大蒜: $a=fread(....);//读4个字节$d=unpack('V',$a); //按32bit无符号小端解码.大端用字母N echo $d[0]; 另,手工计算也可以$a=fread(....);//读4个字节$d=ord($a[0]);$d|=ord($a[1])$d|=ord($a[2])$d|=ord($a[3]) 按小端计算
古交市18539622099: 关于php 接收二进制流转换成图片 - ?
毋雄大蒜: 比如此类名字叫做imageUpload.class.php 那么首先是要引入该类文件用include("imageUpload.class.php"); 第二步是实例化该类$inputimage = new imageUpload("input.jpg","./"); 第三部是调用二进制转换成图片的方法了,$inputimage->stream2Image(); 实例化该类需要传两个参数,第一个是需要保存的图片名字,第二个是图片保存路径地址.
古交市18539622099: 如何实现php替换文件.就是把整个文件替换掉. - ?
毋雄大蒜: 个人觉得替换文件无疑就是两步,删除和创建,当然安全起见,你可以先创建一个temp文件,创建成功再把原先的文件删了,再把temp的名字重命名一下,要是失败原先的还保留.
古交市18539622099: php怎么替换数据库里面的内容 - ?
毋雄大蒜: 1、数据库本身都带有replace函数可以直接替换,不同的数据库的replace替换语法不同,可以根据你的实际情况确定使用.这样可以直接使用SQL语句替换就可以了,在PHP中执行这个SQL. 2、直接在PHP使用查询语句,查询出需要替换的数据表数据,之后通过PHP的str_replace方法进行替换,将替换后的结果在创建一个Update的SQL语句,在PHP中再次执行Update语句,也可以实现更新. 根据自己的实际情况确定,选哪种都可以. 希望对你有帮助.
古交市18539622099: PHP为什么追加内容,把原来a.txt里面的内容都替换掉了.怎样才能在a.txt文档里的后面追加内容. - ?
毋雄大蒜: 这个地方是fopen函数的第二个参数(模式)的设置问题,其中主要有:'r' 只读方式打开,将文件指针指向文件头. 'r+' 读写方式打开,将文件指针指向文件头. 'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零.如果文件不存在则尝试创建之. 'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零.如果文件不存在则尝试创建之. 'a' 写入方式打开,将文件指针指向文件末尾.如果文件不存在则尝试创建之. 'a+' 读写方式打开,将文件指针指向文件末尾.如果文件不存在则尝试创建之. 'w'是替换,要追加需要改用'a'
古交市18539622099: 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 ...
古交市18539622099: phpstorm多个目录中的文件查找替换内容怎么做 - ?
毋雄大蒜: ctrl+shift+R 在弹出来的界面中Text to find中填入被替换的字符串 在Replace with中填入替换的字符串 可以在Scope设置里指定某个文件夹替换或者整个项目替换.
古交市18539622099: php:打开一个文件替换指定内容后再次写入 - ?
毋雄大蒜: 最节省资源的方法: <?php $f='a.html'; file_put_contents($f,str_replace('[我的电脑]','PHP学习',file_get_contents($f))); ?>