php 文件流与二进制流_【PHP】文件、字符串和二进制流 - 互相转换案例

【PHP】文件、字符串和二进制流 -- 互相转换案例<?php

// +----------------------------------------------------------------------

// | 文件和二进制流--之互相转换     Author:xiaochuan     28126649@qq.com

// +----------------------------------------------------------------------

/**

* 测试入口方法

* Author: xiaochuan

* @param  $file:文件地址(在你本地或服务是必须存在的文件)

* @param  $text:二进制流文件地址

* @param  $file:生成新的文件地址

* @return

*/

function demo($file,$text,$newfile)

{

if(!file_exists($file)) EXIT("Parameter is not a file or does not exist!");

$content = file_get_contents($file);

$content = encode_str($content);

$fp = fopen($text, 'w');

fwrite($fp, $content);

fclose($fp);

$content = decode_str($content);

$fp = fopen($newfile, 'w');

fwrite($fp, $content);

fclose($fp);

}

/**

* 字符串、文件转换成二进制流内容

* Author: xiaochuan

* @param

* @return

*/

function encode_str($data)

{

if (!is_string($data)) return null;

$obj = unpack('H*', $data);

$obj = str_split($obj[1], 1);

$str = '';

foreach ($obj as $v){

$str .=str_pad(base_convert($v, 16, 2), 4, '0', STR_PAD_LEFT);

}

return $str;

}

/**

* 二进制流内容,转换回原内容

* Author: xiaochuan

* @param

* @return

*/

function decode_str($data)

{

if (!is_string($data)) return null;

$data = str_split($data, 4);

$str = '';

foreach ($data as $v){

$str .= base_convert($v, 2, 16);

}

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

return $str;

}

//运行后可以查看一下生成的二进制文件跟新文件看看哦

echo demo('./1.jpg','./to.txt','./new.jpg');

?>

浏览器启用弹出窗口过滤功能,将无法跳转到下载页。在浏览器地址栏右边符号提示处点击允许就可以了!

郑重声明:

1、本站源码仅供个人学习研究和交流使用,请于下载后二十四小时内删除

2、本站大多资源来源于互联网、用户分享,仅供学习交流使用,本站不提供任何技术支持

3、本站联系方式Email:admin@youhutong.com ,收到邮件会第一时间处理。

4、如侵犯到任何版权问题,请立即告知本站(立即在线告知),本站将及时删除并致以最深的歉意

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值