php处理二进制数据 php二进制流转图片

批处理 php 二进制进位算法//算法分析:我们想要实现的是数字相加,每位数的最大值为4,超过4进1位 , 即5进制 。
//如果,数字的最后一位不等于4,那么直接相加并输出;如果最后一位是4,将这一位置1,并且进位1
//进位的1必须跟前面的数字进行相加,这就形成了一个递归,递归的条件是最后一位等于4
//为了跟前面的数字进行相加,我们必须先对原数字进行截取,比如数字1114,进位后应该得到1121
//代码是这样处理的:先把4置1,然后截取111,递归过程中执行111+1=112,然后返回112,并更上一次递归中得到的和的最后一位
//拼接成一个新的字符串:1121
php中能输出二进制数据么可以的 。
可以用一个十进制二进制的函数decbin(),生成的是一个字符串,直接输出即可
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中把字符串转换成二进制的函数?如果是的话,可以进行如下处理
ASCII(str)
返回字符串str的最左面字符的ASCII代码值 。如果str是空字符串,返回0 。如果str是NULL , 返回NULL 。
ORD(str)
如果字符串str最左面字符是一个多字节字符 , 通过以格式((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]返回字符的ASCII代码值来返回多字节字符代码 。如果最左面的字符不是一个多字节字符 。返回与ASCII()函数返回的相同值 。
CONV(N,from_base,to_base)
在不同的数字基之间变换数字 。返回数字N的字符串数字,从from_base基变换为to_base基,如果任何参数是NULL,返回NULL 。参数N解释为一个整数,但是可以指定为一个整数或一个字符串 。最小基是2且最大的基是36 。如果to_base是一个负数 , N被认为是一个有符号数,否则,N被当作无符号数 。CONV以64位点精度工作 。
BIN(N)
返回二进制值N的一个字符串表示,在此N是一个长整数(BIGINT)数字,这等价于CONV(N,10,2) 。如果N是NULL,返回NULL 。
OCT(N)
返回八进制值N的一个字符串的表示,在此N是一个长整型数字 , 这等价于CONV(N,10,8) 。如果N是NULL , 返回NULL 。
HEX(N)
返回十六进制值N一个字符串的表示,在此N是一个长整型(BIGINT)数字,这等价于CONV(N,10,16) 。如果N是NULL,返回NULL 。
CHAR(N,...)
CHAR()将参数解释为整数并且返回由这些整数的ASCII代码字符组成的一个字符串 。NULL值被跳过 。
CONCAT(str1,str2,...)
返回来自于参数连结的字符串 。如果任何参数是NULL,返回NULL 。可以有超过2个的参数 。一个数字参数被变换为等价的字符串形式 。
LENGTH(str)
OCTET_LENGTH(str)
CHAR_LENGTH(str)
CHARACTER_LENGTH(str)
返回字符串str的长度 。
LOCATE(substr,str)
POSITION(substr IN str)
返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面 , 返回0.
LOCATE(substr,str,pos)
返回子串substr在字符串str第一个出现的位置 , 从位置pos开始 。如果substr不是在str里面,返回0 。
INSTR(str,substr)
返回子串substr在字符串str中的第一个出现的位置 。这与有2个参数形式的LOCATE()相同,除了参数被颠倒 。

推荐阅读