当前位置:首页 » 编程语言 » php中英字符串长度

php中英字符串长度

发布时间: 2023-06-02 14:42:13

php 输出字符长度

mb_substr("字符串",开始索引(int),结束索引(int),“utf-8”)
按照上面的写就是了
如果用substr来写的话 utf-8的格式一个中文占3个长度gbk和gb2312一个中文占2个长度
而mb_substr来写的话 不管什么格式 只要是占一个位置 都是算作一个长度
但是用mb_substr必须注意几点
在php.ini中 就是php的配置文件中必须开启mb_substr这个符号 就是把前面份额分号给去掉
还有就是后面必须写上你的编码格式如“utf-8”或者gb2312之类的
如果你想用这个mb_substr的话 并且那个字符串中还有英文的话那是绝对会出错的
至于写的话 楼主自己写一下吧 查一下文档不久OK了吗 还要别人写出来 这点自学能力都没有

Ⅱ php如何获取字符串长度,中文、符号、英文字母都算作一个

一般情况下 有汉字的时候 是使用 mb_strlen 这个函数来计算字符长度
这个函数需要开启 mb_string扩展 默认都是不开启的

Ⅲ 用PHP统计字符串长度

PHP 计算字符串长度代码示例如下,具体逻辑在代码中。

<?php
//统计字符串长度,适用中文,字母,数字混编
functionget_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;
}

//测试
echoget_strlength("中国人2015年的gdp为:6666");
//25
?>

Ⅳ 利用PHP函数计算中英文字符串长度的方法

本文实例讲述了利用PHP函数计算中英文字符串长度的方法。分享给大家供大家参考。具体实现方法如下:
一般来说大家知道英文字符占一个字节,而中文字符gbk占两个字符,utf8占三个字符,很多人印象中php计算字符串长度就是strlen()函数,其实不然,它计算的是字节的长度而非字符的长度,那么如何获取一个字符串中字符的长度呢?还有有mb_strlen().
具体代码如下:
复制代码
代码如下:echo
$str
=
'PHP点点通';
echo
strlen($str);
//3*1+3*3=12
echo
mb_strlen($str,
'gb2312');
//3*1+3*2=9
echo
mb_strlen($str,
'utf-8');
//6

Ⅳ php怎样限制字符的显示长度

  1. 思路:获取字符串长度,和自己设置的要显示的长度比较,超出,就截取处理

  2. 代码例子如下:

    $str="你好啊阿拉拉拉";
    //处理长度不管中英文,都代表1个长度
    preg_match_all("/./us",$str,$match);
    $str_arr=$match[0];
    $length_val=count($str_arr);//字符串长度

    $show_str=implode('',$str_arr);//最后要显示的字符串

    //控制的显示长度
    $length_limit=3;
    //字符串超出控制长度,显示处理
    if($length_val>$length_limit){
    $show_str="";
    for($i=0;$i<$length_limit;$i++){
    $show_str.=$str_arr[$i];
    }
    $show_str.="...";//最后以...代表后面字符省略
    }
    echo$show_str;

Ⅵ php哪个函数能取得字符串长度

1、首先新建一个php文件,命名为test.php。

Ⅶ PHP怎么获取字符串长度

PHP对中文字符串的处理一直困扰于刚刚接触PHP开发的新手程序员。下面简要的剖析一下PHP对中文字符串长度的处理:

(1)PHP自带的函数如strlen()、mb_strlen()都是通过计算字符串所占字节数来统计字符串长度的,一个英文字符占1字节;

(2)中文则不然,做中文网站一般会选择两种编码:gbk/gb2312或是utf-8。utf-8能兼容更多的字符,所以受到很多站长的喜爱。gbk与utf-8对中文的编码不同,导致中文在gbk与utf-8编码下所占字节也有差异。



Ⅷ 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如何获取中文字符长度,一个中文字符算一个

在PHP中专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启。要在php.ini中开启即可。获取长度实例:1 ,utf-8环境下使用

header('Content-type:text/html;charset=utf-8');
/**
*可以统计中文字符串长度的函数
*@param$str要计算长度的字符串
*@param$type计算长度类型,0(默认)表示一个中文算一个字符,1表示一个中文算两个字符
*
*/
functionabslength($str)
{
if(empty($str)){
return0;
}
if(function_exists('mb_strlen')){
returnmb_strlen($str,'utf-8');
}
else{
preg_match_all("/./u",$str,$ar);
returncount($ar[0]);
}
}
$str='我们都是中国人啊,ye!';
$len=abslength($str);
var_mp($len);//return12
$len=abslength($str,'1');
echo'<br/>'.$len;//return22

/*
utf-8编码下截取中文字符串,参数可以参照substr函数
@param$str要进行截取的字符串
@param$start要进行截取的开始位置,负数为反向截取
@param$end要进行截取的长度
*/
functionutf8_substr($str,$start=0){
if(empty($str)){
returnfalse;
}
if(function_exists('mb_substr')){
if(func_num_args()>=3){
$end=func_get_arg(2);
returnmb_substr($str,$start,$end,'utf-8');
}
else{
mb_internal_encoding("UTF-8");
returnmb_substr($str,$start);
}

}
else{
$null="";
preg_match_all("/./u",$str,$ar);
if(func_num_args()>=3){
$end=func_get_arg(2);
returnjoin($null,array_slice($ar[0],$start,$end));
}
else{
returnjoin($null,array_slice($ar[0],$start));
}
}
}
$str2='wo要截取zhongwen';
echo'<br/>';
echoutf8_substr($str2,0,-4);//returnwo要截取zhon

2,支持gb2312,gbk,utf-8,big5 中文截取方法

/*

* 中文截取,支持gb2312,gbk,utf-8,big5

*

* @param string $str 要截取的字串

* @param int $start 截取起始位置

* @param int $length 截取长度

* @param string $charset utf-8|gb2312|gbk|big5 编码

* @param $suffix 是否加尾缀

*/

public function csubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)

{

if(function_exists("mb_substr"))

{

if(mb_strlen($str, $charset) <= $length) return $str;

$slice = mb_substr($str, $start, $length, $charset);

}

else

{

$re['utf-8'] = "/[x01-x7f]|[xc2-xdf][x80-xbf]|[xe0-xef][x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/";

$re['gb2312'] = "/[x01-x7f]|[xb0-xf7][xa0-xfe]/";

$re['gbk'] = "/[x01-x7f]|[x81-xfe][x40-xfe]/";

$re['big5'] = "/[x01-x7f]|[x81-xfe]([x40-x7e]|xa1-xfe])/";

preg_match_all($re[$charset], $str, $match);

if(count($match[0]) <= $length) return $str;

$slice = join("",array_slice($match[0], $start, $length));

}

if($suffix) return $slice."…";

return $slice;

}

Ⅹ php文件中,一个字符串最长可以有多长

你说的是php的变量能存多少范围吧?比如

$str='IamChinese';

一般来说,php不限制变量的长度

你可以打开你的php.ini,里面有这样的配置语句:(我用的mssql数据库,就拿它举例吧)

; Valid range 0 - 2147483647.Default = 4096.
;mssql.textlimit = 4096

; Valid range 0 - 2147483647.Default = 4096.
;mssql.textsize = 4096


可见php确实对变量大小没有限制(2G的限制目前确实可以视为不存在),只是在默认的配置下被限制到了4096字节,亦即2048个汉字。

如果你想增大php的变量最大字节的话,可以在php.ini中修改以下代码:


ini_set("mssql.textsize",200000);
ini_set("mssql.textlimit",200000);

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:333
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:374
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:610
java用什么软件写 发布:2025-05-18 03:56:19 浏览:31
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:105
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:940
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:736
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:800
网卡访问 发布:2025-05-18 03:35:04 浏览:507
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:369