php 截取字符串

 1     /**
 2      * 方法库-截取字符串-【该函数作者未知】
 3      * @param string  $string 字符串
 4      * @param int     $length 字符长度
 5      * @param string  $dot    截取后是否添加...
 6      * @param string  $charset编码
 7      * @return string
 8      */
 9     public function cutstr($string, $length, $dot = ‘ ...‘, $charset = ‘utf-8‘) {
10         if (strlen($string) <= $length) {
11             return $string;
12         }
13         $string = str_replace(array(‘&amp;‘, ‘&quot;‘, ‘&lt;‘, ‘&gt;‘), array(‘&‘, ‘"‘, ‘<‘, ‘>‘), $string);
14         $strcut = ‘‘;
15         if (strtolower($charset) == ‘utf-8‘) {
16             $n = $tn = $noc = 0;
17             while ($n < strlen($string)) {
18                 $t = ord($string[$n]);                //ASCII?
19                 if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
20                     $tn = 1; $n++; $noc++;
21                 } elseif (194 <= $t && $t <= 223) {
22                     $tn = 2; $n += 2; $noc += 2;
23                 } elseif (224 <= $t && $t < 239) {
24                     $tn = 3; $n += 3; $noc += 2;
25                 } elseif (240 <= $t && $t <= 247) {
26                     $tn = 4; $n += 4; $noc += 2;
27                 } elseif (248 <= $t && $t <= 251) {
28                     $tn = 5; $n += 5; $noc += 2;
29                 } elseif ($t == 252 || $t == 253) {
30                     $tn = 6; $n += 6; $noc += 2;
31                 } else {
32                     $n++;
33                 }
34                 if($noc >= $length) {
35                     break;
36                 }
37             }
38             if ($noc > $length) {
39                 $n -= $tn;
40             }
41             $strcut = substr($string, 0, $n);
42         } else {
43             for ($i = 0; $i < $length; $i++) {
44                 $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
45             }
46         }
47         $strcut = str_replace(array(‘&‘, ‘"‘, ‘<‘, ‘>‘), array(‘&amp;‘, ‘&quot;‘, ‘&lt;‘, ‘&gt;‘), $strcut);
48         return $strcut.$dot;
49     }
时间: 2024-09-30 11:03:42

php 截取字符串的相关文章

js常用的4种截取字符串方法

平常经常把这几个api的参数记混了,于是打算记录下来,当不确定的时候在拿出来翻翻: 在做项目的时候,经常会需要截取字符串,所以常用的方法有slice().substr().substring().match()方法等,四个方法的使用如下所示: 1 <script type="text/javascript"> 2 // 截取字符串的方法 3 //注意1.字符串的截取都是从左向右,不会有从右向左截取:2.slice与substring方法,截取返回的字符串包含numStart

面试题之java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 要求不能出现截半的情况

题目:10. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串. 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”. 一.需要分析 1.输入为一个字符串和字节数,输出为按字节截取的字符串-------------->按照字节[byte]截取操作字符串,先将String转换成byte类型 .2.汉字不可以截半----------------------------------

JS简单应用之截取字符串函数以及replace,split函数

JS截取字符串:slice(),substring()和substr()1.substr 方法返回一个从指定位置开始的指定长度的子字符串.stringvar.substr(start [, length ])参数stringvar必选项.要提取子字符串的字符串文字或 String 对象.start必选项.所需的子字符串的起始位置.字符串中的第一个字符的索引为 0.length可选项.在返回的子字符串中应包括的字符个数.说明如果 length 为 0 或负数,将返回一个空字符串.如果没有指定该参数

Java机试题目_怎样截取字符串

面试题1  怎样截取字符串 考题题干 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串.但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF"6,应该输出"我ABC",而不是"我ABC+汉的半个". 试题分析 本面试题容易产生困惑的是中文字符和英文字符,在这里需要考虑汉字和英文字符的占用字节数问题,中文字符占两个字节,英文字符占一个字节,理解了这

C#截取字符串

public class SubStrHelper { /// <summary> /// 截取字符串长度,中文二字节 /// </summary> /// <param name="str"></param> /// <param name="length">字节长度</param> /// <returns></returns> public static strin

截取字符串空格

----截取字符串左侧空格 ---- ltrim(表达式) select LTRIM(FName),Fname from T_Personselect LEN(   123),LTRIM(   123) ----截取字符串右侧空格---- rtrim(表达式) select LEN(   123),rtrim(123   )

js如何截取字符串右边指定长度的字符

js如何截取字符串右边指定长度的字符:通常情况下都从字符串的左边开始截取字符串,下面介绍一下如何从字符串的右边截取字符串.代码如下: String.prototype.right=function(length_) { var _from=this.length-length_; if(_from<0) _from=0; return this.substring(this.length - length_,this.length); } var str="antzone"; c

文章生成器,Split方法截取字符串。从硬盘读取文件,和向硬盘存储文件参考代码

string x, y; private void button2_Click(object sender, EventArgs e) { textBox2.Clear(); if (button4.Enabled == false) { string[] shuzu = y.Split(new char[]{'.'}); //用split方法截取字符串 string news = ""; // 将截取字符串后的语句打乱顺序 for (int i = 0; i < shuzu.L

Js自动截取字符串长度,添加省略号“……”

JavaScript字符串处理函数,根据定义的长度截取字符串,超出部分裁掉追加……,很多时候网页上显示的内容需要缩成“...”该方法用于处理字符串显示固定长度,超长部分用“...”代替: /**参数说明: * 根据长度截取先使用字符串,超长部分追加… * str 对象字符串 * len 目标字节长度 * 返回值: 处理结果字符串 */ function cutString(str, len) { //length属性读出来的汉字长度为1 if(str.length*2 <= len) { ret

thinkphp内置截取字符串函数无法显示省略号解决方法

thinkphp内置截取字符串函数无法显示省略号解决方法 functions.php function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true){ if(function_exists("mb_substr")) {      if($suffix)    {         if($str==mb_substr($str, $start, $length, $charset))