摘要:截取中英文字符串截取中英文字符串,就不必再用或者截取想这样的字符串李三像不确定字符串是什么组成方式的时候,拿不准该用还是的时候,可以试试以下方法,是否能解决的你得烦恼利用中英混合的字符串截取字符串的字节数得到字符串中第位字符的码如果位高与,
php 截取中英文字符串
php 截取中英文字符串,就不必再用substr或者mb_substr
//截取想这样的字符串 a李三
像不确定字符串是什么组成方式的时候,拿不准该用substr还是mb_substr的时候 ,可以试试以下方法,是否能解决的你得烦恼
利用ASCII
/** * * 中英混合的字符串截取 * @param unknown_type $sourcestr * @param unknown_type $cutlength */ function assoc_substr($sourcestr, $cutlength) { $returnstr = ""; $i = 0; $n = 0; $str_length = strlen ( $sourcestr ); //字符串的字节数 while ( ($n < $cutlength) and ($i <= $str_length) ) { $temp_str = substr ( $sourcestr, $i, 1 ); $ascnum = Ord ( $temp_str ); //得到字符串中第$i位字符的ascii码 if ($ascnum >= 224) {//如果ASCII位高与224, $returnstr = $returnstr . substr ( $sourcestr, $i, 3 ); //根据UTF-8编码规范,将3个连续的字符计为单个字符 $i = $i + 3; //实际Byte计为3 $n ++; //字串长度计1 } elseif ($ascnum >= 192){ //如果ASCII位高与192, $returnstr = $returnstr . substr ( $sourcestr, $i, 2 ); //根据UTF-8编码规范,将2个连续的字符计为单个字符 $i = $i + 2; //实际Byte计为2 $n ++; //字串长度计1 } elseif ($ascnum >= 65 && $ascnum <= 90) {//如果是大写字母, $returnstr = $returnstr . substr ( $sourcestr, $i, 1 ); $i = $i + 1; //实际的Byte数仍计1个 $n ++; //但考虑整体美观,大写字母计成一个高位字符 }elseif ($ascnum >= 97 && $ascnum <= 122) { $returnstr = $returnstr . substr ( $sourcestr, $i, 1 ); $i = $i + 1; //实际的Byte数仍计1个 $n ++; //但考虑整体美观,大写字母计成一个高位字符 } else {//其他情况下,半角标点符号, $returnstr = $returnstr . substr ( $sourcestr, $i, 1 ); $i = $i + 1; $n = $n + 0.5; } } return $returnstr; }
通过这样就可以很方便的进行一些字符串的截取等,避免因为字节不同而截取乱码或者不对的情况。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/28743.html
摘要:应用场景从数据库读取产品标题过长时,会导致布局混乱,我们可以使用字符串截断函数进行截断,用代替截断部分。 应用场景 从数据库读取产品标题过长时,会导致布局混乱,我们可以使用字符串截断函数进行截断,用...代替截断部分。 函数代码 /** * 字符截取(对中文、英文都可以进行截取) * @param string $string 字符串 * @...
摘要:这里简单介绍一下方法,中文解释就是将整个文件读入一个字符串,它有个参数这里他们分别表示要读取的文件的名称,另指路径,后面三个参数基本不会用到,甚至第二个参数都很少见,所以重点是确定你要读取文件的路径,是绝对路径。 简述 接触PHP差不多2年,从懵懂到入门,再到追求稳定高效的高阶级学习,我慢慢的积累一些PHP编程经验,我本人记性不好,所以把这些经验记下来,慢慢累积,乐自助人,何乐不为呢?...
递归创建目录 /** * 递归创建目录 * @param [type] $dir [description] * @return [type] [description] */ function mkdirs($dir) { if(!is_dir($dir)){ if(!mkdirs(dirname($dir))){ return...
摘要:一概念变量修饰器调节器可用于变量,自定义函数和字符串。请使用符号和修饰器名称应用修饰器。变量修饰器由赋予的参数值决定其行为。与之相反将变量值转成大写字母所有字母,无参数。它与修饰器的效果刚好相反。它们会按复合的顺序来作用于变量,从左到右。 一、概念 变量修饰器(调节器)可用于变量,自定义函数和字符串。 请使用‘|’符号和修饰器名称应用修饰器。 变量修饰器由赋予的参数值决定其行为。 参数...
阅读 3231·2023-04-25 18:03
阅读 1111·2021-11-15 11:38
阅读 5396·2021-10-25 09:45
阅读 815·2021-09-24 09:48
阅读 2160·2021-09-22 15:34
阅读 1715·2019-08-30 15:44
阅读 2655·2019-08-30 13:12
阅读 552·2019-08-29 16:05