最近在做串口数据开发时,因为用户上传的串口数据时十六进制的字符串,需要用PHP将字符串按2个字符进行截取后转换为十进制。刚开始的想法是使用for循环进行截取,但想到其他语言如Java、.Net中都有相应的字符串处理函数,对照文档,发现PHP也有相应的字符串截取函数str_split。
str_split()函数怎么用
str_split()函数用于把字符串按规定长度分割到数组中,语法:str_split(string,length)
参数:参数描述
string必须,要分割的字符串
length可选,规定每个数组元素的长度,默认为1,如果length小于1,则返回false,如果length长度大于当前字符串的长度,则整个字符串将作为数组的唯一元素返回。
说明:将字符串按规定长度分割组成数组
举例1,将字符串按2个字符进行分割:<?php $str="helloworld";$arr= str_split($str,2);//指定分割的数组元素长度为2var_dump($arr);//输出
输出结果:array (size=5)
0 => string 'he' (length=2)
1 => string 'll' (length=2)
2 => string 'ow' (length=2)
3 => string 'or' (length=2)
4 => string 'ld' (length=2)
举例2,将十六进制字符串按2位字符进行分割,并转换为十进制:<?php $str="010330001e000000280000000a";$arr= str_split($str,2);//指定分割的数组元素长度为2foreach($arras&$v) {$v= hexdec($v);//将16进制转换为10进制}var_dump($arr);//输出
输出结果:array (size=13)
0 => int 1
1 => int 3
2 => int 48
3 => int 0
4 => int 30
5 => int 0
6 => int 0
7 => int 0
8 => int 40
9 => int 0
10 => int 0
11 => int 0
12 => int 10