1.   阿里云服务器1888元代金券领取
  2.   本网站所有源码包解压密码:www.youhutong.com
登录  帮助问答

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

小川 技术文章
郑重声明:
  本站发布的内容仅限用于学习和研究目的.请勿用于商业或非法用途,否则后果请用户自负,下载后请24小时内删除。 本站所有内容均不能保证其完整性,不提供任何技术支持,不能接受请勿购买或下载,如需完整程序,请去其官方购买正版使用。
  如侵犯到任何版权问题,请立即告知本站(侵权投诉),本站将及时删除并致以最深的歉意

【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、如侵犯到任何版权问题,请立即告知本站(立即在线告知),本站将及时删除并致以最深的歉意
( 0 )个小伙伴在吐槽
    登录帐号  如果已经登录请刷新! 发表我的评论
    表情