导航:首页 > 编程语言 > php字符串数字大小

php字符串数字大小

发布时间:2022-09-08 19:27:58

php字符串长度计算 - strlen()函数使用介绍

strlen()函数和mb_strlen()函数
在PHP中,函数strlen()返回字符串的长度。函数原型如下:
复制代码
代码如下:
int
strlen(string
string_input);
参数string_input为要处理的字符串。
strlen()函数返回字符串所占的字节长度,一个英文字母、数字、各种符号均占一个字节,它们的长度均为1。一个中午字符占两个字节,所以一个中午字符的长度是2。例如
复制代码
代码如下:
<?php
echo
strlen("www.sunchis.com");
echo
strlen("三知开发网");
?>
“echo
strlen("www.sunchis.com");”的运行结果:15
“echo
strlen("三知开发网");”的运行结果:15
这里有一个疑问,一个中文字符不是占2个字节吗?“三知开发网”,明明是五个汉字,运行的结果怎么会是15?
原因出在这里:strlen()计算时,对于一个UTF-8的中文字符,会把它当做长度为3来处理。当出现中英文混排的情况下,怎么准确的计算字符串的长度呢?这里,得引入另外一个函数mb_strlen()。mb_strlen()函数的用法与strlen()几乎一摸一样,只是多了一个指定字符集编码的参数。函数原型为:
复制代码
代码如下:
int
mb_strlen(string
string_input,
string
encode);
PHP内置的字符串长度函数strlen无法正确处理中文字符串,它得到的只是字符串所占的字节数。对于GB2312的中文编码,strlen得到的值是汉字个数的2倍,而对于UTF-8编码的中文,就是3倍的差异了(在UTF-8编码下,一个汉字占3个字节)。
因此,下面的代码能准确计算出中文字符串的长度:
复制代码
代码如下:
<?php
$str
=
"三知sunchis开发网";
echo
strlen($str)."<br>";
//结果:22
echo
mb_strlen($str,"UTF8")."<br>";
//结果:12
$strlen
=
(strlen($str)+mb_strlen($str,"UTF8"))/2;
echo
$strlen;
//结果:17
?>
原理分析:
strlen()计算时,对待UTF-8的中文字符长度是3,所以“三知sunchis开发网”的长度为5×3+7×1=22
在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算,所以“三知sunchis开发网”长度为5×1+7×1=12
剩下的就是纯数学问题了,在此就不啰嗦了……
注意:对于mb_strlen($str,'UTF-8'),如果省略第二个参数,则会使用PHP的内部编码。内部编码可以通过mb_internal_encoding()函数得到。需要注意的是,mb_strlen并不是PHP核心函数,使用前需要确保在php.ini中加载了php_mbstring.dll,即确保“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函数的问题。

㈡ php字符串大小比较问题,太多的疑问!!请求前辈指路!万分感谢!

str2.jpg与str10.jpg比较,前三个字母完全一样,第四个2比1大。

m与M比较,就是比较它们的ASCII码,m比M大。

一般计算机都是这么比较的。

使用自然排序法更符合人们的习惯

str2与str10相比,2比10小。

m与M比较,还是比较ASCII码,与上面一样

㈢ 请教:关于PHP字符串大小对比问题

方法就是将字符串分割,然后用mktime转换为时间戳
这个二楼说的很清楚了

还有一种简单点的方法strtotime()
直接将字符串转换为时间戳
例如:strtotime("2009-10-31 19:14:00");
将输出1256987640 这样就可以直接比较

注意,如果与当前时间比较,记得设置下时区,
date_default_timezone_set('PRC');
不然,会有8小时的偏差

㈣ php字符串为什么可以直接比较大小

可能是实验巧合,用逻辑运算符比较字符串时,会先把字符串转换成数字,再比较数值。

比如

"10hello"会转换成整型10

"9.8"会转换成浮点9.8f

转换后再进行比较。


比较字符串或字节数据最好用strcmp之类的字符串函数。



题主是个无脑的猪,选了个错误答案

<?php
$a='10';
$b='9.8';
var_mp($a>$b);
var_mp(strcmp($a,$b)>0);
booleantrue
booleanfalse


所有的资料都会告诉你,字符串绝不能用逻辑运算符。

㈤ php判断字符串全部大小写

?是转大小写吗?如果字符串全部转为大小可以用,strtoupper()函数,小写用strtolower()函数

㈥ php用什么函数可以返回字符串的大小

strlen返回字节数,你自己除1024就得到KB,没有直接返回KB的函数

㈦ php中比较两个数大小的内置函数是什么

函数描述:mixed max(mixed arg1, mixed arg2, …,mixed argn);
返回值:返回此数组中的最大值,若参数中有浮点数,则所有参数转化成浮点数,
返回值也为浮点数;否则所有参数转化成整数,返回值为整数。

函数描述:mixed min(mixed arg1, mixed arg2, …,mixed argn);
返回值:返回此数组中的最小值,若参数中有浮点数,则所有参数转化成浮点数,
返回值也为浮点数;否则所有参数转化成整数,返回值为整数。

㈧ php中英文字符串为什么能比较大小

是根据内码进行比较,因为字符的内码叫做ASCII,中文内码有有UTF、UNICODE、ANSI等不同标准,和你说的ASCII类似,你可以这样理解。

例子程序和代码:

【编】【程】两个字进行比较的情况如上,当然汉字是两个字节的,上面只显示了格子的第一个字节。

㈨ 为什么php里字符串可以比较大小字符串也不像数字那样有个明确的值啊,所以比较的是字符串的什么属性

用strcmp函数。
strcmp() 函数比较两个字符串。
注释:strcmp() 函数是二进制安全的,且对大小写敏感。
echo strcmp("Hello world!","Hello world!");

㈩ php 如何按大小排列字符串

$arr=array($str1,$str2,$str3,$str4);
$arr=arsort($arr);//从大到小
//$arr=asort($arr);//从小到大
while(list($name,$value)=each($arr)){
echo $name.": ".$value."<br>";
}

阅读全文

与php字符串数字大小相关的资料

热点内容
美食博主用什么app拍视频 浏览:812
ipone手机如何加密微信 浏览:354
自来水加密阀阀帽 浏览:431
华为交换机dhcp配置命令 浏览:315
androidbitmap缩小 浏览:271
单片机串口控制灯 浏览:84
大讯云服务器安装视频 浏览:784
华为算法领先世界 浏览:654
linux路由重启 浏览:566
php的模板编程 浏览:322
编译器原理与实现书 浏览:709
dos选择命令 浏览:18
apm固件编译到单片机 浏览:121
联通深蓝卡都包含什么app 浏览:266
如何判断网络服务器正常 浏览:652
路由器搭桥远端服务器地址是什么 浏览:518
编译动态库时会连接依赖库吗 浏览:710
淘宝手机加密是随机的吗 浏览:675
解压包子怎么装饰 浏览:588
四个数凑24算法 浏览:679