/**
* 截取字符串的函数
*
* @param string $str 被截取的字符串
* @param int $length 截取的长度
* $param string $charset 编码设置,utf8,gbk
*
* @return string
*/
function sub_str($str, $length = 0, $charset='utf8') {
$str = trim($str);
$strlength = strlen($str);
$charset = strtolower($charset);//将字符串转化为小写
$i=0;
if ($charset == 'utf8') {
$l = 0;
while ($i < $strlength) {
if (ord($str{$i}) < 0x80) {//返回字符的 ASCII 码值
$l++; $i++;
} else if (ord($str{$i}) < 0xe0) {
$l++; $i += 2;
} else if (ord($str{$i}) < 0xf0) {
$l += 2; $i += 3;
} else if (ord($str{$i}) < 0xf8) {
$l += 1; $i += 4;
} else if (ord($str{$i}) < 0xfc) {
$l += 1; $i += 5;
} else if (ord($str{$i}) < 0xfe) {
$l += 1; $i += 6;
}
if ($l >= $length) {
$newstr = substr($str, 0, $i);
break;
}
}
if($l < $length) {
return $str;
}
} elseif($charset == 'gbk') {
if ($length == 0 || $length >= $strlength) {
return $str;
}
while ($i <= $strlength) {
if (ord($str{$i}) > 0xa0) {
$l += 2; $i += 2;
} else {
$l++; $i++;
}
if ($l >= $length) {
$newstr = substr($str, 0, $i);
break;
}
}
}
return $newstr;
}
分享到:
相关推荐
### PHP截取字符串函数的方法详解 #### 一、引言 在PHP开发过程中,经常会遇到需要截取字符串的需求。例如,在展示文章摘要时,我们希望只显示部分内容,并且避免截断单词的情况发生。本文将详细介绍一种自定义的...
php //截取中文字符串 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,...
PHP中的substr函数就可以做的到,只不过PHP把二个函数合二为一了,这里再给大家分享一个更加优秀的截取字符串的函数。 复制代码 代码如下: /** * 方法库-截取字符串-【该函数作者未知】 * @param string $...
描述部分提到了文章的目的是分享一个精确的PHP截取字符串函数,并鼓励读者在现有基础上进行改进或创新,说明作者可能对目前函数的精确度持有开放态度,并期待读者的反馈与改进。 在标签方面,除了关注PHP本身截取...
Substring截取字符串字符串截取方法是指从字符串中提取某一段子字符串的过程,通常会使用“切割”的方式,把字符串的一段子字符串截取出来,该子字符串以索引指定,也可以使用正则表达式或函数实现字符串截取。...
"php通用截取字符串"这个主题主要涉及如何在PHP中对字符串进行截取,以便获取我们感兴趣的特定部分。这通常用于显示预览、处理用户输入或者从长文本中提取关键信息。在PHP中,有多种方法可以实现字符串截取,下面...
需要注意的是,这种方法虽然能够在不支持`mb_substr()`和`iconv_substr()`的环境中使用,但性能上往往不如原生的多字节字符串函数。而且,正则表达式匹配在处理大字符串时可能会比较慢,且正则表达式的复杂性也可能...
标题中的“php 截取字符串”主要涉及PHP中的两个核心函数:`substr()` 和 `mb_substr()`。`substr()` 是PHP中用于截取字符串的基本函数,而`mb_substr()` 则是多字节安全的版本,适用于处理包含多种字符集(如UTF-8...
在Python中,可以使用内置的`[start:end]`切片操作来截取字符串。如果要考虑字节,我们需要使用`encode()`方法将字符串转化为字节串,因为Python的切片默认是基于字符的。例如: ```python s = "你好,世界" byte_s...
总结,处理中文字符串截取时,理解字符编码和字符串处理函数的特性至关重要。PHP的mbstring扩展提供了强大且安全的方法来处理多字节字符,确保了中文字符串截取的准确性。在编写代码时,要时刻关注字符串的编码类型...
在PHP中,常见的截取字符串函数有substr、iconv_substr和mb_substr。它们各自有不同的特点和适用场景,下面将详细介绍这三个函数并分析它们的优劣。 substr函数是最基本的字符串截取函数,它可以截取指定长度的字符...
字符串的截取php内置函数就有很多种; 简单示例如下; $str='123/456/789/abc'; 截取第一个斜杠前面的内容可以这样来: echo substr($str,0,strpos($str, '/')) 或者 $array=explode('/', $str); echo $array...
- **PHP字符串函数**:了解更多字符串处理函数,如`strstr`、`strpos`、`trim`等。 - **PHP钩子系统**:学习如何在ThinkPHP中使用钩子进行扩展和插件开发。 - **PHP多表查询**:理解如何在数据库层面进行复杂的...
首先,PHP提供了多种内置函数来截取字符串,其中最常用的是`substr()`和`mb_substr()`。 1. `substr()`函数:这是一个基本的字符串截取函数,适用于纯ASCII字符串。它的语法是`substr(string, start, length)`。`...
1. **基本字符串截断方法:**PHP中最基础的字符串截断方法是使用`substr()`函数。该函数接受三个参数:原始字符串、开始位置和长度。例如,`substr($str, 0, 20)`会返回字符串的前20个字符。然而,这种方法不考虑...
在PHP编程语言中,处理字符串是一项常见的任务,其中包括截取字符串。然而,普通的截取方法如`substr()`可能在处理英文文本时导致单词被割裂,影响可读性。为了解决这个问题,我们可以使用特定的类或函数来实现“不...
本篇将围绕“PHP截取字符串”这一主题,深入探讨相关的知识点。 首先,我们需要了解PHP中最常用的字符串截取函数——`substr()`。`substr()`函数允许我们从字符串的指定位置开始,截取指定长度的字符。其基本语法...