php实现文件与16进制相互转换的方法示例


Posted in PHP onFebruary 16, 2017

前言

本文给大家介绍的是如何使用PHP实现文件与16进制相互转换,例如可以把文件转为16进制后保存到数据库中,也可以把16进制数据转为文件保存。

代码如下:

<?php
/**
 * php 文件与16进制相互转换
 * Date: 2017-01-14
 * Author: fdipzone
 * Ver: 1.0
 *
 * Func
 * fileToHex 文件转16进制
 * hexToFile 16进制转为文件
 */

/**
 * 将文件内容转为16进制输出
 * @param String $file 文件路径
 * @return String
 */
function fileToHex($file){
 if(file_exists($file)){
 $data = file_get_contents($file);
 return bin2hex($data);
 }
 return '';
}

/**
 * 将16进制内容转为文件
 * @param String $hexstr 16进制内容
 * @param String $file 保存的文件路径
 */
function hexToFile($hexstr, $file){
 if($hexstr){
 $data = pack('H*', $hexstr);
 file_put_contents($file, $data, true);
 }
}

// 演示
$file = 'test.doc';

// 文件转16进制
$hexstr = fileToHex($file);
echo '文件转16进制<br>';
echo $hexstr.'<br><br>';

// 16进制转文件
$newfile = 'new.doc';
hexToFile($hexstr, $newfile);

echo '16进制转文件<br>';
var_dump(file_exists($newfile));

?>

输出:

文件转16进制
efbbbf3130e4b8aae4bfafe58da7e69291e28094e280943235e4b8aae4bbb0e58da7e8b5b7...

16进制转文件
boolean true

总结

以上就是这篇文章的全部内容内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
MVC模式的PHP实现
Oct 09 PHP
PHP 分页类(模仿google)-面试题目解答
Sep 13 PHP
PHP APC缓存配置、使用详解
Mar 06 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
Jun 19 PHP
thinkphp模板继承实例简述
Nov 26 PHP
php的sso单点登录实现方法
Jan 08 PHP
Symfony2学习笔记之插件格式分析
Mar 17 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
Aug 05 PHP
Thinkphp5.0框架视图view的模板布局用法分析
Oct 12 PHP
YII2框架中添加自定义模块的方法实例分析
Mar 18 PHP
Laravel中获取IP的真实地理位置
Apr 01 PHP
php 原生分页
Apr 01 PHP
php根据用户名和手机号查询是否存在手机号码
Feb 16 #PHP
php使用PDO执行SQL语句的方法分析
Feb 16 #PHP
php四种定界符详解
Feb 16 #PHP
php使用PDO获取结果集的方法
Feb 16 #PHP
redirect_uri参数错误的解决方法(必看)
Feb 16 #PHP
php实现PDO中捕获SQL语句错误的方法
Feb 16 #PHP
php中的单引号、双引号和转义字符详解
Feb 16 #PHP
You might like
全国FM电台频率大全 - 23 四川省
2020/03/11 无线电
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
Laravel 5框架学习之表单验证
2015/04/08 PHP
PHP在线书签系统分享
2016/01/04 PHP
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
js 绑定键盘鼠标事件示例代码
2014/02/12 Javascript
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
javascript中Date()函数在各浏览器中的显示效果
2015/06/18 Javascript
JavaScript实现图片轮播的方法
2015/07/31 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
jQuery qrcode生成二维码的方法
2016/04/03 Javascript
JS制作图形验证码实现代码
2020/10/19 Javascript
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
js 图片懒加载的实现
2020/10/21 Javascript
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
Python写的一个定时重跑获取数据库数据
2016/12/28 Python
Django框架验证码用法实例分析
2019/05/10 Python
使用python+whoosh实现全文检索
2019/12/09 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
python3 xpath和requests应用详解
2020/03/06 Python
Python使用jpype模块调用jar包过程解析
2020/07/29 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
法国二手MacBook销售网站:Okamac
2019/03/18 全球购物
一组SQL面试题
2016/02/15 面试题
机械设计职业生涯规划书
2013/12/27 职场文书
汽车专业大学生职业生涯规划范文
2014/01/07 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
幼儿园见习报告
2014/10/30 职场文书
2014小学一年级班主任工作总结
2014/12/05 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书
财产分割协议书
2016/03/22 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang
为Centos安装指定版本的Docker
2022/04/01 Servers