用PHP统计字符串长度?
答案:4 悬赏:80 手机版
解决时间 2021-04-03 03:39
- 提问者网友:嗝是迷路的屁
- 2021-04-02 12:14
用PHP统计字符串长度?
最佳答案
- 五星知识达人网友:忘川信使
- 2021-04-02 13:27
PHP 计算字符串长度代码示例如下,具体逻辑在代码中。
//统计字符串长度,适用中文,字母,数字混编
function get_strlength($str) {
//强字符串统一转换为utf-8格式
$encode = mb_detect_encoding( $str, array('ASCII','UTF-8','GB2312','GBK'));
if (!$encode =='UTF-8'){
$str = iconv('UTF-8',$encode,$str);
}
//初始化字符串长度
$count = 0;
//循环统计
for($i = 0; $i < strlen($str); $i++){
//获取字符串首字母对应的ASCII值
$value = ord($str[$i]);
if($value > 127) {
$count++;
if($value >= 192 && $value <= 223){
$i++;
}elseif($value >= 224 && $value <= 239){
$i = $i + 2;
}elseif($value >= 240 && $value <= 247){
$i = $i + 3;
}else{
die('字符串异常!!');
}
}
$count++;
}
return $count;
}
//测试
echo get_strlength("中国人2015年的gdp为:6666");
//25
?>
//统计字符串长度,适用中文,字母,数字混编
function get_strlength($str) {
//强字符串统一转换为utf-8格式
$encode = mb_detect_encoding( $str, array('ASCII','UTF-8','GB2312','GBK'));
if (!$encode =='UTF-8'){
$str = iconv('UTF-8',$encode,$str);
}
//初始化字符串长度
$count = 0;
//循环统计
for($i = 0; $i < strlen($str); $i++){
//获取字符串首字母对应的ASCII值
$value = ord($str[$i]);
if($value > 127) {
$count++;
if($value >= 192 && $value <= 223){
$i++;
}elseif($value >= 224 && $value <= 239){
$i = $i + 2;
}elseif($value >= 240 && $value <= 247){
$i = $i + 3;
}else{
die('字符串异常!!');
}
}
$count++;
}
return $count;
}
//测试
echo get_strlength("中国人2015年的gdp为:6666");
//25
?>
全部回答
- 1楼网友:何以畏孤独
- 2021-04-02 15:38
php有自带函数:strlen
- 2楼网友:人间朝暮
- 2021-04-02 15:01
还是用php自带的函数strlen吧,顺便把官方手册上的例子给你:
$str = 'abcdef';
echo strlen($str); // 6
$str = ' ab cd ';
echo strlen($str); // 7?>
$str = 'abcdef';
echo strlen($str); // 6
$str = ' ab cd ';
echo strlen($str); // 7?>
- 3楼网友:几近狂妄
- 2021-04-02 14:09
很简答啊,因为你的函数第一句写错了if($str = "") return 0;这个$str= ""不是判断是赋值!应该是
function sstrlen($str){
if($str == "") return 0;
else{
$i=-1;
do{
$i++;
}while($str[$i]!=NULL);
}
return $i;
}
$str = "hello";
echo sstrlen($str);
试试吧!
function sstrlen($str){
if($str == "") return 0;
else{
$i=-1;
do{
$i++;
}while($str[$i]!=NULL);
}
return $i;
}
$str = "hello";
echo sstrlen($str);
试试吧!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯