1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > PHP截取中英文混合字符串

PHP截取中英文混合字符串

时间:2021-09-01 08:29:24

相关推荐

PHP截取中英文混合字符串

<?php/*** 截取中英文混合字符串* @param $sourcestr 需要截取的字符串* @param $start 开始位置,字符位置,* @param $cutlength 结束位置* @return 包含$start*/function cut_str($sourcestr, $start, $cutlength){$returnstr = '';$i = 0;// 根据字符位置,获取字节位置if ($start != 0) {$temp_str = cut_str($sourcestr, 0, $start);if ($temp_str) {$i = strlen($temp_str); # code...}}$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} elseif ($ascnum >= 192) {//如果ASCII位高与192,$returnstr = $returnstr . substr($sourcestr, $i, 2); //根据UTF-8编码规范,将2个连续的字符计为单个字符$i = $i + 2; //实际Byte计为2} else {//其他情况下$returnstr = $returnstr . substr($sourcestr, $i, 1);$i = $i + 1; //实际的Byte数计1个}$n ++; //字串长度计1}return $returnstr;}list($sourcestr, $start, $cutlength) = ['实际的Byte数计1个', 2, 7];echo $sourcestr.'<br>';echo $start.'<br>';echo cut_str($sourcestr, $start, $cutlength);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。