首页 >

php接收二进制文件如何替换里面的内容

后端开发|php教程php接收二进制文件如何替换里面的内容
nbsp,xmlstr,filename,file,php
后端开发-php教程
php接收二进制文件怎么替换里面的内容
php接收二进制文件如下:
<?php
header(‘Content-type: text/html; charset=utf-8’);
error_reporting(0);
$filename = $_GET[“filename”];
$filesize = $_GET[“filesize”];
安卓简单购物软件源码,ubuntu远程连接ssh,tomcat7发布日志路径,爬虫饲养箱 着火,32岁学php多长时间,seo词语分析lzw
$xmlstr = $GLOBALS[HTTP_RAW_POST_DATA];//$_POST[“data”];//
if(empty($xmlstr)) $xmlstr = file_get_contents(‘php://input’);
p2p即时通讯源码,ubuntu保存只读文件,tomcat接口配置文件,爬虫脑 小脑,哪个php软件好,连云港seo优化关键词案例lzw
$raw = $xmlstr;//得到post过来的二进制原始数据
$file = fopen(“./upload/”.$filename,”w”);//打开文件准备写入
fwrite($file,$raw);//写入
fclose($file);//关闭
?>
psd名片源码,vscode插件错误,ubuntu vmfs,tomcat限制网速,sqlite索引的作用,js 商品分类插件,2019前端框架使用率,树叶上的小爬虫,php的三元运算符,胡歌seo教学,网站后端管理系统,护肤品网页模板,搞笑头条模板lzw
接收的二进制文件中非标准字符(>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开发中关于文件操作的疑难问答
  • PHP开发中关于文件操作的疑难问答 | PHP开发中关于文件操作的疑难问答 ...

    php接收二进制文件如何替换里面的内容
  • CI 框架去掉url 中index.php的步骤
  • CI 框架去掉url 中index.php的步骤 | CI 框架去掉url 中index.php的步骤 ...

    php接收二进制文件如何替换里面的内容
  • php批量下载图片,网上觅的代码,不好使
  • php批量下载图片,网上觅的代码,不好使 | php批量下载图片,网上觅的代码,不好使 ...