php 字符串截取
- 格式:docx
- 大小:25.35 KB
- 文档页数:5
1. 截取GB2312中文字符串<?php/*** 字符截取,截取gb2312中文字符串* @param $str 要截取的字符串* @param $start 开始位置* @param $len 截取的长度*/function mysubstr($str, $start, $len){$tmpstr = "";$strlen = $start + $len;for($i = 0; $i < $strlen; $i++) {if(ord(substr($str, $i, 1)) > 0xa0) {$tmpstr .= substr($str, $i, 2);$i++;} else$tmpstr .= substr($str, $i, 1);}return $tmpstr;}echo mysubstr('善良能够培养一个人的道德以及人格,久而久之,形成一股气质,同时也能给人一种亲近感。
平时多换位思考一下,不要整日想着自己需要什么,为何不想想别人需要什么?当你需要什么的时候,不要总以自己的想法来左右别人,别人在意的是自己的需求,而并非你的需求。
',0,100);?>输出:善良能够培养一个人的道德以及人格,久而久之,形成一股气质,同时也能给人一种亲近感。
平时多换位思考一下2. 截取utf8编码的字符串<?php/*** 字符截取,截取utf8字符串* @param $str 要截取的字符串* @param $form 开始位置* @param $len 截取的字数*/function utf8Substr($str, $from, $len){return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s', '$1',$str);}echo utf8Substr('善良能够培养一个人的道德以及人格,久而久之,形成一股气质,同时也能给人一种亲近感。
平时多换位思考一下,不要整日想着自己需要什么,为何不想想别人需要什么?当你需要什么的时候,不要总以自己的想法来左右别人,别人在意的是自己的需求,而并非你的需求。
',0,100);?>输出:善良能够培养一个人的道德以及人格,久而久之,形成一股气质,同时也能给人一种亲近感。
平时多换位思考一下,不要整日想着自己需要什么,为何不想想别人需要什么?当你需要什么的时候,不要总以自己的想法来左右别人3. UTF-8、GB2312都支持的汉字截取函数 (一)<?php/*Utf-8、gb2312都支持的汉字截取函数cut_str(字符串, 截取长度字数, 开始长度, 编码);编码默认为 utf-8,传入的参数一定要是当前页面的编码,否则容易出现乱码开始长度默认为 0*/function cut_str($string, $sublen, $start = 0, $code = 'UTF-8'){if($code == 'UTF-8'){$pa ="/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x 80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xb f]/";preg_match_all($pa, $string, $t_string);if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."...";return join('', array_slice($t_string[0], $start, $sublen));}else{$start = $start*2;$sublen = $sublen*2;$strlen = strlen($string);$tmpstr = '';for($i=0; $i< $strlen; $i++){if($i>=$start && $i< ($start+$sublen)){if(ord(substr($string, $i, 1))>129){$tmpstr.= substr($string, $i, 2);}else{$tmpstr.= substr($string, $i, 1);}}if(ord(substr($string, $i, 1))>129) $i++;}if(strlen($tmpstr)< $strlen ) $tmpstr.= "...";return $tmpstr;}}$str = "善良能够培养一个人的道德以及人格,久而久之,形成一股气质,同时也能给人一种亲近感。
平时多换位思考一下,不要整日想着自己需要什么,为何不想想别人需要什么?当你需要什么的时候,不要总以自己的想法来左右别人,别人在意的是自己的需求,而并非你的需求。
";echo cut_str($str, 100, 0, 'UTF-8');?>输出:善良能够培养一个人的道德以及人格,久而久之,形成一股气质,同时也能给人一种亲近感。
平时多换位思考一下,不要整日想着自己需要什么,为何不想想别人需要什么?当你需要什么的时候,不要总以自己的想法来左右别人...4. UTF-8、GB2312都支持的汉字截取函数 (二)<?php/*** 字符截取支持UTF8/GBK* @param $string* @param $length* @param $dot*/function str_cut($string, $length, $dot = '...'){$strlen = strlen($string);if($strlen <= $length) return $string;$string = str_replace(array(' ',' ', '&', '"', ''', '“', '”', '—', '<', '>', '·', '…'), array('∵',' ', '&', '"', "'", '“', '”', '—', '<', '>', '·', '…'), $string);$strcut = '';$length = intval($length-strlen($dot)-$length/3);$n = $tn = $noc = 0;while($n < strlen($string)) {$t = ord($string[$n]);if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)){$tn = 1; $n++; $noc++;}elseif(194 <= $t && $t <= 223) {$tn = 2; $n += 2; $noc += 2;}elseif(224 <= $t && $t <= 239) {$tn = 3; $n += 3; $noc += 2;}elseif(240 <= $t && $t <= 247) {$tn = 4; $n += 4; $noc += 2;}elseif(248 <= $t && $t <= 251) {$tn = 5; $n += 5; $noc += 2;}elseif($t == 252 || $t == 253) {$tn = 6; $n += 6; $noc += 2;}else{$n++;}if($noc >= $length) {break;}}if($noc > $length) {$n -= $tn;}$strcut = substr($string, 0, $n);$strcut = str_replace(array('∵', '&', '"', "'", '“', '”', '—', '<', '>', '·', '…'), array(' ', '&', '"', ''', '“', '”', '—', '<', '>', '·', '…'), $strcut);return $strcut.$dot;}echo str_cut('善良能够培养一个人的道德以及人格,久而久之,形成一股气质,同时也能给人一种亲近感。