Ⅰ php里字节数组 怎么理解
PHP的字符串都是字节数组(或者叫字节串)。传言到PHP6 会改成真正的unicode字符串,但目前PHP4、5的字符串都只是字节串。
$a='你好';
echo $a[0];//这时显示的是一个字节,而不是字符‘你’
PHP中所有的字符串函数,比如substr、strpos、strcmp等等都注明了“binary-safe二进制安全”,表明这些函数只是处理字节,而非处理字符。
形成的原因:PHP早期和C一样,仅仅兼容ASCII码,而ASCII码的一个字符等同一个字节。
所以目前PHP的字符和字节是基本同义的,处理中文需要multibyte char多字节字符的MB模块。
到PHP6才会改变
Ⅱ PHP如何将从二进制文件中读取的字节转换为数字
bindec函数可转换二进制数为十进制数
Ⅲ php带长度处理的函数是一个汉字两个字节吗
PHP的字符处理函数的单位是字节byte,不是字符
多字节的字符集,比如含汉字的GBK,UTF8用多字节模块中mb_strlen这样的函数来统计“字符数”.
Ⅳ php 如何通过程序对图片进行Byte[] 格式的处理
其实你为什么非要BYTE格式处理呢,作图之类应该交给PS等软件,不过楼主硬是要一个例子,请看下面代码:
<?
if(!file_exists('test.jpg'))
{
fopen('test.jpg');
}
$fp = fopen('test.jpg', 'w');
fwrite($fp, $byte);
fclose($fp);
header ("Content-type: image/jpg");
echo $byte;
?>
Ⅳ php curl 如何提交字节集数据和处理字节集数据(byte),也就是二进制数据
file_get_contents 获得的就是二进制流
Ⅵ php 几个字节 函数
有两个函数可以取PHP字符串长度
----------------------------------------------------------------------
strlen — 获取字符串长度
int strlen ( string $string )
返回给定的字符串 string 的长度。参数 string 需要计算长度的字符串。
返回值 成功则返回字符串 string 的长度;如果 string 为空,则返回 0。
----------------------------------------------------------------------
mb_strlen — 获取字符串的长度 (PHP 4 >= 4.0.6, PHP 5)
mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )
获取一个 string 的长度。
参数 str 要检查长度的字符串。
encoding 参数为字符编码。如果省略,则使用内部字符编码。
返回值
返回具有 encoding 编码的字符串 str 包含的字符数。 多字节的字符被计为 1。
如果给定的 encoding 无效则返回 FALSE。
特别要注意的是:
有关中文的问题。PHP内置的字符串长度函数strlen无法正确处理中文字符串,它得到的只是字符串所占的字节数。对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是3倍的差异了(在UTF-8编码下,一个汉字占3个字节)。
采用mb_strlen函数可以较好地解决这个问题。mb_strlen的用法和strlen类似,只不过它有第二个可选参数用于指定字符编码。例如得到UTF-8的字符串$str长度,可以用mb_strlen($str,'UTF-8')。如果省略第二个参数,则会使用PHP的内部编码。内部编码可以通过mb_internal_encoding()函数得到。需要注意的是,mb_strlen并不是PHP核心函数,使用前需要确保在php.ini中加载了php_mbstring.dll,即确保“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函数的问题。
Ⅶ php处理字节流
字节流是由字节组成的,
字节流是最基本的,所有的InputStrem和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
字符流和字节流都是什么
流就是stream. 一个连续的字节队列。
流是程序输入或输出的一个连续的字节序列,设备(例如鼠标,键盘,磁盘,屏幕和打印机)的输入和输出都是用流来处理的。在C语言中,所有的流均以文件的形式出现---不一定是物理磁盘文件,还可以是对应与某个输入/输出源的逻辑文件
流(streams)在I/O系统中是一种I/O机制和功能,或者称为streams子系统。它本身并不是一个物理设备的概念。
引入流的目的:
传统的字符设备驱动程序框架有许多缺点,这表现在:
。内核与字符设备驱动程序间接口的抽象层次太高
。内核没有为字符设备提供可靠的缓冲区分配和管理功能
。许多系统对字符设备的界面是把数据看成是FIFO(先进先出)的字节流,因此没有识别消息边界,区分普通设备和控制信息,以及判定不同消息优先级的能力,也没有字节流流量控制
。在网络数据传输设备中这些问题更突出。网络中数据传输是基于消息或数据分组的。
流的概念:
用通讯中的术语来说,流是全双工的处理过程,它是内核中驱动程序和用户进程之间的数据传输通道。
从流的构造上来说,它由一个流头,一个流驱动程序尾,以及其间的零个或若干个可选模块构成 。流头是一个用户级接口,它允许用户应用程序通过系统调用接口来访问流。驱动程序尾与底层设备通信。在流的中间的模块是处理数据的。
字节流与字符流主要的区别是他们的的处理对象
字节流是由字节组成的,字符流是由字符组成的. Java里字符由两个字节组成.
字节流是最基本的,所有的InputStrem和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化。在从字节流转化为字符流时,实际上就是byte[]转化为String时,
public String(byte bytes[], String charsetName)
有一个关键的参数字符集编码,通常我们都省略了,那系统就用操作系统默认的lang
流式传输主要指将整个音频和视频及三维媒体等多媒体文件经过特定的压缩方式解析成一个个压缩包,由视频服务器向用户计算机顺序或实时传送。在采用流式传输方式的系统中,用户不必像采用下载方式那样等到整个文件全部下载完毕,而是只需经过几秒或几十秒的启动延时即可在用户的计算机上利用解压设备对压缩的A/V、3D等多媒体文件解压后进行播放和观看。此时多媒体文件的剩余部分将在后台的服务器内继续下载。
Ⅷ php怎么把字节转换MB
function sizecount($filesize) {
if($filesize >= 1073741824) {
$filesize = round($filesize / 1073741824 * 100) / 100 . ' gb';
} elseif($filesize >= 1048576) {
$filesize = round($filesize / 1048576 * 100) / 100 . ' mb';
} elseif($filesize >= 1024) {
$filesize = round($filesize / 1024 * 100) / 100 . ' kb';
} else {
$filesize = $filesize . ' bytes';
}
return $filesize;
}
//应用方法
$path='./111cn.net/a.gif';
echo sizecount(filesize($path));
Ⅸ php如何将图片转成字节流
在php中,有文件上传,那么php服务器端可以接收到请求参数 $_FILES,在 $_FILES数组中读取到上传文件的form表单名,然后在读取的数组中可以获取上传文件的源文件,使用 fopen()函数就可以获取文件的字节流了。
具体来点代码看看吧:(假定上传文件的表单名为 “formname”)
if($_FILES && isset($_FILES["formname"])){
//获取上传的文件的属性数组
$_fileinfo = $_FILES["formname"];
//获取上传文件的原文件名
$_filename = $_fileinfo["name"];
//获取上传文件的大小
$_filesize = $_fileinfo["size"];
//获取上传文件的临时文件名(长文件名)
$_filesource = $_fileinfo["tmp_name"];
//以读写方式打开文件,并将资源绑定到一个流上
$_filestream = fopen($_filesource,"ab");
//实现上传文件,其实质是把临时文件移动到制定的保存文件的位置
$_newfilename = "../mypath/filename.exp"; //自定义文件名,包含路径,可以是相对路径
move_uploaded_file($_filesource, $_newfilename);
}
Ⅹ 求指教!,php如何把字符串转化为字节数组呢
将一个字符串分解成一个字符串数组,这种分割可能是基于某个字符,比如说是空格,逗号,分号之类的话,你可以用PHP的字符串分割函数 explode(),语法是PHP code?
1、array explode ( string separator, string string [, int limit])
函数的第一个参数是分割符,第二个就是字符串了,具体可以参考一下PHP手册
2、
<?php
function string2bytes($str){
$bytes=array();
for ($i=0; $i < strlen($str); $i++) {
$tmp=substr($str, $i,1);
$bytes[]=bin2hex($tmp);
}
return $bytes;
}
$b=string2bytes("昆山二手车ello,world");
var_mp($b);