php二进制数据流 php 二进制流

php 怎么将二进制流转换为base64编码

没有特别作用,因为任何人只要想解都能解开。 BASE64 是将二进制数据 (8位)编码为64个可显示的 ASCII 字符,3个 octet 编码成 4 个 octet。因此既不是压缩,也不是加密。估计把php编码成base64只是为了让人读起来麻烦一点。

创新互联主要从事网站制作、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务富裕,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

php二进制流输出文件出错

你要的内容太多了,只能简单的说下。fopen (PHP 3, PHP 4, PHP 5)fopen -- 打开文件或者 URL 说明resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )fopen() 将 filename 指定的名字资源绑定到一个流上。如果 filename 是 "scheme://..." 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。 如果 PHP 认为 filename 指定的是一个本地文件,将尝试在该文件上打开一个流。该文件必须是 PHP 可以访问的,因此需要确认文件访问权限允许该访问。如果激活了安全模式或者 open_basedir 则会应用进一步的限制。 如果 PHP 认为 filename 指定的是一个已注册的协议,而该协议被注册为一个网络 URL,PHP 将检查并确认 allow_url_fopen 已被激活。如果关闭了,PHP 将发出一个警告,而 fopen 的调用则失败。 注意: 所支持的协议列表见附录 N。某些协议(也被称为 wrappers)支持 context 和/或 php.ini 选项。参见相应的页面哪些选项可以被设定(例如 php.ini 中用于 http wrapper 的 user_agent 值)。 注意: 对 context 的支持是 PHP 5.0.0 添加的。有关 context 的说明见参考 CLX, Stream Functions。注意: 自 PHP 4.3.2 起,对所有区别二进制和文本模式的平台默认模式都被设为二进制模式。如果在升级后脚本碰到问题,尝试暂时使用 't' 标记,直到所有的脚本都照以下所说的改为更具移植性以后。 mode 参数指定了所要求到该流的访问类型。可以是以下: 表 1. fopen() 中 mode 的可能值列表mode说明'r'只读方式打开,将文件指针指向文件头。 'r+'读写方式打开,将文件指针指向文件头。 'w'写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 'w+'读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 'a'写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 'a+'读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 'x'创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。 'x+'创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。 注意: 不同的操作系统家族具有不同的行结束习惯。当写入一个文本文件并想插入一个新行时,需要使用符合操作系统的行结束符号。基于 Unix 的系统使用 \n 作为行结束字符,基于 Windows 的系统使用 \r\n 作为行结束字符,基于 Macintosh 的系统使用 \r 作为行结束字符。 如果写入文件时使用了错误的行结束符号,则其它应用程序打开这些文件时可能会表现得很怪异。 Windows 下提供了一个文本转换标记('t')可以透明地将 \n 转换为 \r\n。与此对应还可以使用 'b' 来强制使用二进制模式,这样就不会转换数据。要使用这些标记,要么用 'b' 或者用 't' 作为

如果帮助到您,请记得采纳为满意答案哈,谢谢!祝您生活愉快! vae.la

php如何生成二进制流文件

参考代码:

?php

$file="images/login.png";

$content = $GLOBALS['HTTP_RAW_POST_DATA'];

if(empty($content)){

$content = file_get_contents('php://input');

}

$result = file_put_contents($file, $content, true);

var_dump($result);

?

php如何将二进制字符串转换成二进制流?

当字符串处理转换就行

/**

 * 将字符串转换成二进制

 * @param type $str

 * @return type

 */

 function StrToBin($str){

 //1.列出每个字符

 $arr = preg_split('/(?!^)(?!$)/u', $str);

 //2.unpack字符

 foreach($arr as $v){

 $temp = unpack('H*', $v); $v = base_convert($temp[1], 16, 2);

 unset($temp);

 }

 return join(' ',$arr);

 }

PHP关于获取二进制数据流转换为文件的方法

?php

$bin= bstr2bin($json);

file_put_contents('../somefold/',$bin);

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怎样将二进制流存到文件中?

整形转化成 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 "\nbr转化为二进制 ...";

$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二进制数据流 php 二进制流
链接地址:http://ybzwz.com/article/hjdpcp.html