当前位置:首页 » 编程语言 » php输出二进制

php输出二进制

发布时间: 2023-02-26 05:57:24

php+mysql 输出二进制文件

这个错误是因为你没有设置layout,所以zend会找默认的layout也就是layout.Phtml,解决办法,在你的入口文件写:
//设置layout路径
Zend_Layout::startMVC(array('layoutPath'=>'./application/moles/Default/views/layout/','layout'=>'default'));
layoutPath是你的布局的路径,layout是你的布局文件名称。

❷ 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中,字母a和字母A的二进制,八进制,十进制,十六进制的写法是什么

字母"a":

二进制:1100001

八进制:141

十进制:97

十六进制:61

你可以通过以下代码来查看:

<?php
$num=ord('a');
//二进制
echodecbin($num),',';
//八进制
echodecoct($num),',';
//十进制
echo$num,',';
//十六进制
echodechex($num),',';

❹ 怎样在PHP中把16进制HEX数据转换为2进制数据呢

十六进制转为二进制有两种理解方法,第一是十六进制字符串转二进制字符串,第二是十六进制数转二进制数,下面分别介绍2种转换方法:

1.hex2bin函数可以将十六进制字符串转换为二进制字符串,详细用法如下:

hex2bin — 转换十六进制字符串为二进制字符串

stringhex2bin(string$data)

转换十六进制字符串为二进制字符串。

参数:

data:十六进制表示的数据

返回值:

返回给定数据的二进制表示 或者在失败时返回 FALSE。

异常:

如果输入的十六进制字符串是奇数长数或者无效的十六进制字符串将会抛出E_WARNING 级别的错误。

示例:

$hex=hex2bin("");
echo$hex;//examplehexdata(其中16进制代表的是ascii码)

2.base_convert是真正意义上的进制转换函数

base_convert — 在任意进制之间转换数字

stringbase_convert(string$number,int$frombase,int$tobase)

返回一字符串,包含 number以 tobase 进制的表示。number 本身的进制由frombase指定。frombase 和 tobase 都只能在2 和 36 之间(包括 2 和 36)。高于十进制的数字用字母 a-z 表示,例如a 表示 10,b 表示 11 以及 z 表示 35。

参数:

number:要转换的数字

frombase:原始进制

tobase:转换后的进制

示例:

$hexadecimal='A37334';
echobase_convert($hexadecimal,16,2);//101000110111001100110100

❺ 求解 使用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二进制流输出文件出错

你要的内容太多了,只能简单的说下。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
$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 的位运算总结

php的位运算很少会用到,但是用处很大,
在有些算法中会用到,在权限管理中也会经常用到,
对于理解计算机的世界也会有一定的帮助,所以得把这些重要但不常用的东西总结一下记录一下。

提到位运算,避不开的是二进制。

因为位运算是直接在内存做操作和运算,相较与直接拿两个变量做运算符肯定是更快的。

很多地方把二进制这玩意说得很晦涩,现在来以最简单的方式来总结一下,当然只算 int 范围内的数算了,超过了这个范畴程序员还不如拿这时间去学点别的。

说完以上总结,再来解释下什么是二进制,网上大把,
但只要记住,int范围内的数也就是我们大部分需要用到的数,都可以用二进制来表示。

我们生活中用到的计数方式为十进制,由个数位满10进1,
然后再开始重新计算,等十位满9再加一时,百位加一,十位归零。

二进制则只有两个数字来表示就是0和1,满2进1。
由32个位组成,虽然只有32个位但已满足了我们正常的需求了

比如说1转换为2进制原码,由于1是正数所以符号位为0,
原码反码补码都一个样。
1的原码:00000000 00000000 00000000 00000001
因手懒,太多0太丑用+拼接,Ɔ* 8'代表8个0

2的原码:0* 8 0* 8 0* 8 0* 6 + 1 0,既然是二进制,
满2就得进1,最低位归0,向前加一。
再来解释下负数的原码反码和补码,就开始讲php的位运算了。

二进制复习完毕。下面开始讲讲php的位运算。

php一共有六种位运算,一种一种来讲。

可以这么理解,两个数的补码放在一起比较每个位(一共32个位),
可以得出另外一个数,这个数字的组成由比较的两位数字生成,
如果两个数的每个位数上的数字都等于1的话,
那得到的那个数的补码的同位为1,否则为0。
听着绕口,其实很简单,觉得还是比官网上的更容易让新手看懂
下面举例子:

首先来求-1和7的补码。7的原码就是补码。

两个补码都有了下面开始运算:

按照上面的说法, 每个位都有一样则 $a 的同等位则为1,刚好-1的补码和7的补码前面都不一样,就最后三位一样,所以刚好求得的 $a 的补码的最后三位是1而其他的都是0 ,刚好这个补码为正数,正好就是7。

其实就是和按位与相反,只要有1个为1,那就为1,如果都不为1,那就为0。

$a = -1|7 ;得出来的 $a 补码为32个1,但此时不能说 $a 就是-1,因为这只是补码,要转成原码再转成十进制数,补码-1,然后再翻转,再转出来,得到的其实也还是-1。

就是将这个数的补码全部翻转过来,包括符号位,0变1,1变0
取反的结果一定是整数变负数负数变正数,取正数的反时,
记得一定要从补码一步步转到原码再转成十进制数才是答案。

两个数的补码比较,同等位上的两数比较
,不一样时,则答案的补码的同位则为1,否则为0。

往左移符号位被挤走右边0补充,往右移动,符号位不动,
高位以符号位补充。二进制世界里往左移动其实是相当于乘以了2,
右移相当于除以了2。

不吹牛逼的说,这应该是互联网上最容易理解的php位运算的解释和二进制的解释了。

原文链接: php的位运算总结-PHP

热点内容
phpqq验证 发布:2024-11-07 21:09:07 浏览:961
安卓忘记屏幕时间怎么办 发布:2024-11-07 20:46:08 浏览:180
酒店服务器异常怎么办 发布:2024-11-07 20:46:03 浏览:805
电视买什么牌的什么配置好 发布:2024-11-07 20:41:55 浏览:652
光遇安卓用什么拍视频比较好 发布:2024-11-07 20:23:02 浏览:991
华为云服务器搭建网站 发布:2024-11-07 20:22:39 浏览:251
手机刷安卓卡需要注意什么 发布:2024-11-07 20:21:09 浏览:23
块存储客户端 发布:2024-11-07 20:12:14 浏览:972
scratch打地鼠编程 发布:2024-11-07 20:06:41 浏览:211
微信存储空间里聊天记录删除 发布:2024-11-07 20:05:31 浏览:166