【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、如侵犯到任何版权问题,请立即告知本站(立即在线告知),本站将及时删除并致以最深的歉意