<?php
/**
* 字符串截长(支持中文)
* @author:zms
* @version:2011-7-27
*/
/**
* 字符串截取
* @param object $str : 字符串(支持中文)
* @param object $start :截取开始位置
* @param object $length:截取结束位置
* @param object $encode [optional]:字符串编码
* @param object $input_encode [optional]:输入的文字的编码
* @return
*/
function substring($str, $start, $length, $encode = 'utf-8', $input_encode = 'utf-8') {
//编码转换
$str = iconv($input_encode, $encode, $str);
//正则匹配
preg_match_all(getRege($encode), $str, $match);
//从数组取得数据,组成字符串
$slice = join("", array_slice($match[0], $start, $length));
return $slice;
}
/**
* 中文编码
* @param object $type
* @return
*/
function getRege($type) {
$rege = "";
switch (strtolower($type)) {
case 'utf-8':
$rege = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
break;
case 'gb2312':
$rege = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
break;
case 'gbk':
$rege = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
break;
case "big5":
$rege = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
break;
default:
echo "charset error";
exit;
}
return $rege;
}
?>
分享到:
相关推荐
C语言字符串替换函数strrpl支持中文汉字,解决含中文汉字,可能替换错误的情况。支持GBK、GB18030字符串。
这样的工具可能扩展了`strlen()`的功能,比如支持不同编码的长度计算,或者提供更复杂的字符串操作。 总结来说,`strlen()`是PHP中计算字符串长度的基本工具,但在处理多字节字符时,应考虑使用`mb_strlen()`。结合...
在计算机科学中,字符串是连续的字符序列,可以由字母、数字或其他字符组成,包括汉字。字符串在各种编程语言中都是基本的数据类型,如Python中的`str`,Java中的`String`,JavaScript中的`String`等。 截取字符串...
对于中文字符串的支持,LabVIEW采用Unicode编码,可以很好地处理包含中文字符的字符串。 二、LabVIEW中的字符串数组 在LabVIEW中,数据主要通过数据类型表示,字符串可以以单个字符串或字符串数组的形式存在。字符...
此外,`str_split()`函数也可用于将字符串转换为字符数组,但不支持自定义分隔符,且对于中文字符,每个字符都会被当作一个元素: ```php $str = "你好,世界"; $array = str_split($str); ``` 在某些情况下,可能...
或者,如果项目允许升级到VB.NET或其他支持Unicode的.NET语言,可以使用内置的字符串处理函数,如`Length`或`Count`,它们会自动处理中文字符串的长度。 总之,获取中文字符串长度的关键在于正确处理字符编码,特别...
在这个"rf.rar"压缩包中,我们看到涉及到RF字符串处理的三个关键知识点:RF字符串截取、RF字符串比较以及RF字符串切割。 1. RF字符串截取: 正则表达式提供了灵活的字符串截取方式。通过定义匹配模式,可以精确地...
对于包含非ASCII字符(如中文、日文等)的字符串,简单的`Substring`方法可能会导致乱码。此时,我们需要考虑字符的实际字节数量。 ```csharp public static string CutStringWithEncoding(string inputString, int...
用指针计算字符串长度,简单的小程序,c语言
在LabVIEW中处理字符串,尤其是中文字符串,有时会涉及到特殊的技巧和注意事项,因为中文字符是多字节的,与英文等单字节字符处理方式有所不同。这个"LabVIEW拆分中文字符串.rar"文件很可能是提供了一个解决此类问题...
汉化软件好多地方必须设置字符串长度值,不设置正确功能就失效,所以这小工具,希望对大家有帮助。 功能用途:计算字符串的长度,并以十六进制显示 什么是Hex反序:比如说字符长度是 0123,在文件中实际上是 2301
使用GDI32中API计算字符串的精确象素长度
易语言字符串操作源码,字符串操作,字符串_取长度,字符串_取中间,字符串_取左边,字符串_取右边,字符串_替换,到宽字符,到多字节,取文本数据地址,取字节集数据地址,MultiByteToWideChar,WideCharToMultiByte
在VB(Visual Basic)编程中,处理字符串是常见的任务之一,其中包括将一个长字符串拆分成多个子字符串。这个过程通常称为“字符串拆分”或“分隔字符串”。在这个主题中,我们将深入探讨VB中如何实现这一操作,以及...
在PHP编程中,有时我们需要对过长的字符串进行截断,以便在有限的空间内展示关键信息,例如在网页上显示文章摘要或者处理数据库查询结果。本文将深入探讨PHP中的字符串截断方法,并针对性能和效率进行优化。 1. **...
其中一项常见的需求就是检测一个字符串中是否包含中文字符。这在多种应用场景下都非常有用,比如中文输入验证、数据清洗等。本篇文章将详细介绍如何利用正则表达式来实现这一功能。 ### 一、正则表达式的概念 正则...
C语言strlen()函数:返回字符串的长度 头文件: #include strlen()函数用来计算字符串的长度,其原型为: unsigned int strlen (char *s); 【参数说明】s为指定的字符串。 strlen()用来计算指定的字符串s 的...
### PHP字符串处理详解 #### 一、引言 在PHP编程中,字符串处理是一项非常重要的技能。无论是构建网页内容、处理用户输入还是与其他系统交互,掌握如何高效地操作字符串都是必不可少的。本篇文章将深入探讨PHP中的...
输入一个长度不超过100的字符串,求出这个字符串的长度(不能使用strlen())