php怎样将二进制流存到文件中?

php怎样将二进制流存到文件中?,第1张

整形转化成 2二进制 可以用  base_convert:

$str = 0x8000

 

echo $str2 = base_convert($str, 16, 2)

echo '<br>'

echo base_convert($str2, 2, 16)

[code]

 

字符串 文件等 可以考虑用 pack 和 unpack 转化成二进制

 

[code=PHP]

$file1 = 'F:/46.gif'           //随便拷一个图片作为测试用

$file2 = 'F:/test.txt'         //生成的二进制流保存在这个文件里

$file3 = 'F:/47.gif'           //由二进制流还原成的文件

 

$size = filesize($file1)

 

echo '文件大小为:'.$size

echo "\n<br>转化为二进制 ..."

 

$content = file_get_contents($file1)

$content = bstr2bin($content)

 

 

$fp = fopen($file2, 'w')

fwrite($fp, $content)

fclose($fp)

 

$size2 = filesize($file2)

 

echo '转化成二进制后文件大小为:'.$size2

 

$content = bin2bstr($content)

 

$fp = fopen($file3, 'w')

fwrite($fp, $content)

fclose($fp)

 

 

function bin2bstr($input)

// Convert a binary expression (e.g., "100111") into a binary-string

{

  if (!is_string($input)) return null // Sanity check

 

  // Pack into a string

  $input = str_split($input, 4)

  $str = ''

  foreach ($input as $v)

  {

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

  }

   

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

   

  return $str

}

 

function bstr2bin($input)

// Binary representation of a binary-string

{

  if (!is_string($input)) return null // Sanity check

 

  // Unpack as a hexadecimal string

  $value = unpack('H*', $input)

   

  // Output binary representation

  $value = str_split($value[1], 1)

  $bin = ''

  foreach ($value as $v)

  {

      $b = str_pad(base_convert($v, 16, 2), 4, '0', STR_PAD_LEFT)

       

      $bin .= $b

  }

   

  return $bin

}

需要准备的材料分别是:电脑、php编辑器、浏览器。

1、首先,打开php编辑器,新建php文件,例如:index.php。

2、以二进制数1110101为例,在index.php中,输入代码:$a = 0b1110101echo $a。

3、浏览器运行index.php页面,此时会看到二进制数1110101被成功表示,并以十进制形式打印了出来。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11716722.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存