【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'); ?>
转载请注明来源地址:小川编程 » https://www.youhutong.com/index.php/article/index/69.html
1、本站发布的内容仅限用于学习和研究目的.请勿用于商业或非法用途,下载后请24小时内删除。
2、本站所有内容均不能保证其完整性,不能接受请勿购买或下载,如需完整程序,请去其官方购买正版使用
3、本站联系方式Email:admin@youhutong.com ,收到邮件会第一时间处理。
4、如侵犯到任何版权问题,请立即告知本站(立即在线告知),本站将及时删除并致以最深的歉意