php二进制输出
⑴ php将图片文件转换成二进制输出的方法
本文实例讲述了php将图片文件转换成二进制输出的方法。分享给大家供大家参考。具体实现方法如下:
1
2
3
4
header(
Content-type:
image/jpeg);
$PSize
=
filesize('1.jpg');
$picturedata
=
fread(fopen('1.jpg',
r),
$PSize);
echo
$picturedata;
就这么简单4行代码,就将图片以二进制流的形式输出到客户端了,和打开一张图片没有任何区别。
这里需要注意的是,发送的header要根据具体情况而定,不一定都是image/jpeg。JPG的就是image/jpeg,但PNG的就是image/png.不同类型的图片输出不同的头部。
⑵ 求解 使用php将1000位的十进制大数转成二进制
下面的代码测试通过的,我只用几10位进行测试,理论上成千上万位结果也是正确的,供你参考,算法比较笨蛋(完全模仿人工的除2取余):
<?php
//超大整数(10进制)转换为二进制数
$n='845';
//$n='15';//1111
//$n='257';//100000001
$r='';//结果
while($n){
//$n整除2,商$m、余数$k
$k=0;
$m='';
do{
$k=$k*10+substr($n,0,1);
if($m!=''||$k>1)$m.=floor($k/2);
$k=$k%2;
$n=substr($n,1);
//$r=$k.$r;
}while($n!='');
//echo"r=$r;m=$m ";//break;
//下一轮除法
$n=$m;
$r=$k.$r;
}
echo$r;
?>
⑶ 批处理 php 二进制进位算法
//算法分析:我们想要实现的是数字相加,每位数的最大值为4,超过4进1位,即5进制。
//如果,数字的最后一位不等于4,那么直接相加并输出;如果最后一位是4,将这一位置1,并且进位1
//进位的1必须跟前面的数字进行相加,这就形成了一个递归,递归的条件是最后一位等于4
//为了跟前面的数字进行相加,我们必须先对原数字进行截取,比如数字1114,进位后应该得到1121
//代码是这样处理的:先把4置1,然后截取111,递归过程中执行111+1=112,然后返回112,并更上一次递归中得到的和的最后一位
//拼接成一个新的字符串:1121
⑷ 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如何将二进制字符串转换成二进制流
当字符串处理转换就行
/**
* 将字符串转换成二进制
* @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编辑器、浏览器。
1、首先,打开php编辑器,新建php文件,例如:index.php。
⑺ 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将图片转为二进制后,我想得到二进制的数据,但是直接在浏览上输出会乱码
如果 你是想保存成图片文件的话, 那你就把二进制数据写到文件里, 记得文件后缀是 gif
For Example:
file_put_contents('1.gif', $a);
⑼ php中能输出二进制数据么
可以的。
可以用一个十进制二进制的函数decbin(),生成的是一个字符串,直接输出即可