`
wudikua123
  • 浏览: 63034 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

自己实现php UTF8中文字符串截取

 
阅读更多
header("Content-type: text/html; charset=utf-8");
function my_substr($str,$begin,$length){
		$i = $begin;
		$result="";
		while($length > 0){
			if([color=red]ord($str[$i])>127[/color]){
				$result .= substr($str,$i,3);
				$i = $i+3;
			}else{
				$result .= substr($str,$i,1);
				$i++;
			}
			$length--;
		}
		return $result;
	}

	$chinese = "中a国people";
	
	echo "<br>".my_substr($chinese,0,3);



输出结果是:中a国

说明:
ord 是 对字符去assic值。
chr 是 对assic取字符。

为什么判断assic大于127。

这里是ASSIC码表
http://www.asciitable.com/

计算机中最开始只有ASSIC编码,用来表示字符。一个ASSIC字符用一个BYTE表示。所以ASSIC最多就只有256种组合。对于英文是够用了,中文,日文,韩文等亚洲语种就不够了。
那么只能考虑用多个BYTE表示一个中文汉字,比如GB2312 就是用2个字节表示一个汉字。在windows中用笔记本新建一个TXT保存为ASSIC,如果你是简体中文操作系统,TXT中的中文就是一GB2312来保存的。上面的截取字符串的程序$result .= substr($str,$i,3);中的3就要改成2.同时别忘了修改header。而无论GB2312 还是UTF8 他们表示A-Z等ASSIC 128以前的都是一样的,是一位BTYE表示,是变长编码的。所以可以用ASSIC判断他们是不是中文。

写的可能比较乱。有需要的谨慎阅读。
分享到:
评论

相关推荐

    php字符串截取.pdf

    本篇文章将详细介绍几种在PHP中实现字符串截取的方法,包括针对不同编码(如GB2312与UTF-8)的字符串截取技巧。 #### 二、GB2312中文字符串截取 **1.1 GB2312字符串截取函数** ```php function mysubstr($str, $...

    PHP中如何截取中文字符串

    在PHP中处理中文字符串截取是一项常见的任务,尤其是在网页开发中。中文字符串通常包含UTF-8编码的字符,这与ASCII编码的英文字符串处理方式有所不同。以下将详细讲解如何在PHP中正确截取中文字符串。 首先,我们...

    PHP 不区分中英文截取utf8字符串

    在进行字符串截取时,如果不考虑编码特性,可能会导致截取结果错误。这篇博客“PHP 不区分中英文截取utf8字符串”提供了一个解决方案,使得在UTF-8环境下可以正确地截取包含中文和英文的字符串,而不影响其完整性。 ...

    以utf8格式截取的字符串编码

    在进行字符串截取操作时,选择适当且支持多字节的函数,确保文件和输出的编码一致,这些都是避免编码问题的关键。在提供的`test.php`文件中,很可能包含了使用`mb_strcut`或其他类似函数处理UTF-8字符串的示例代码,...

    php通用截取字符串.zip

    在PHP中,有多种方法可以实现字符串截取,下面我们将详细探讨这些方法。 1. **substr()** 函数 `substr()` 是PHP中最基础的字符串截取函数,它可以返回字符串的一部分。它的基本语法是 `substr(string, start, ...

    字符串按照指定的字节数来截取

    byte_s = s.encode('utf-8') # 将字符串转为UTF-8编码的字节串 substring = byte_s[:n] # 截取前n个字节 ``` 这里的`n`是你要截取的字节数。注意,由于字符可能由多个字节组成(如UTF-8编码中的多字节字符),因此...

    字符串截取,支持中文、UTF8和其他编码

    字符串截取,支持中文、UTF8和其他编码。

    php字符串截取[文].pdf

    下面介绍了一个可以同时支持UTF-8和GB2312编码的字符串截取函数。 ##### 函数定义: ```php function cut_str($string, $sublen, $start = 0, $code = 'UTF-8') ``` - **$string**:待截取的字符串。 - **$sublen*...

    PHP UTF-8 等宽度截取中英文字符.txt

    ### PHP UTF-8 等宽度截取中英文字符知识点详解 #### 一、背景介绍 ...通过以上内容的学习,可以有效地解决在处理多语言文本时遇到的字符截取问题,特别是在中文环境下,确保字符串截取的准确性及美观性。

    php中的一个中文字符串截取函数

    在PHP中,字符串截取函数是一个基本的函数,但是它不能正确地处理中文字符串,因为中文字符串在UTF-8编码中占用多个字节,而PHP的截取函数只能截取固定长度的字符串,无法正确地截取中文字符串。因此,需要开发一个...

    php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例

    这两个自定义函数对于处理中文字符串截取的问题非常有用,尤其是在处理用户输入或者从数据库读取GBK或UTF-8编码的中文数据时,可以有效地防止因编码问题导致的乱码。它们体现了PHP在处理多字节编码字符串时的灵活性...

    多个PHP中文字符串截取函数

    本文将详细介绍几个用于处理中文字符串截取的PHP函数,以及它们的工作原理。 首先,`sysSubStr` 函数是针对UTF-8编码的中文字符串设计的。该函数通过检查每个字符的ASCII值来确定它是否是多字节的中文字符。如果...

    PHP程序设计-3期(KC016) 2.8.3字符串截取 常见问题.docx

    为了解决这个问题,我们可以使用`mb_substr()`函数,它是一个多字节安全的字符串截取函数,能够正确处理UTF-8编码或者其他多字节编码的字符串。 `mb_substr()`函数的语法是`mb_substr(string,start,length,encoding...

    PHP程序设计-3期(KC016) 2.8.3字符串截取 拓展知识.doc

    本节将深入探讨如何使用`substr()`函数以及`mb_substr()`函数来实现字符串截取,特别是在处理UTF-8编码的字符串时的方法。 首先,我们来看`substr()`函数。这是一个内置的PHP函数,用于从字符串的指定位置开始截取...

    php轻松实现中英文混排字符串截取

    在PHP中处理中英文混排的字符串截取和计数是一项常见的任务,特别是在网页开发中。传统的`strlen()`和`substr()`函数对于处理中文字符可能会出现不准确的问题,因为它们通常按照字节来计算字符串长度,而中文字符...

    php 截取字符串

    在处理字符串操作时,PHP提供了丰富的内置函数,使得我们能够方便地进行字符串截取。这篇博客将深入探讨PHP如何截取字符串,并通过实例来演示其具体用法。 标题中的“php 截取字符串”主要涉及PHP中的两个核心函数...

    PHP截取字符串,生成文章摘要

    这些文件很可能包含了不同版本的字符串截取和摘要生成的实现。可能的实现方式包括: - 使用正则表达式寻找关键词或特殊结构来确定摘要。 - 分析句子长度,选择较短的句子作为摘要,以保持摘要的简洁性。 - 使用`str...

    真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )

    总之,`utf8_substr` 函数是基于对UTF-8编码规律的深入理解和正则表达式对多字节字符进行精确检查的高级字符串截取实现,它提供了对字符串在任何位置进行安全截取的能力,这对于处理国际化文本尤其重要。通过阅读和...

Global site tag (gtag.js) - Google Analytics