- 浏览: 63034 次
- 性别:
- 来自: 北京
最新评论
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判断他们是不是中文。
写的可能比较乱。有需要的谨慎阅读。
发表评论
-
求链表中间节点的值,检测链表的环
2012-07-27 14:19 851求链表中间节点的值,检测链表的环 int loop(st ... -
实习前记
2012-07-16 15:27 756经过回来一周的找工作,总体感觉就是很累啊,每天东跑西颠的。面了 ... -
php函数参数列表
2012-05-11 16:50 1428[size=medium] 1.直接传值 function ... -
php的ob_flush和flush
2012-05-10 21:20 1105php.ini中 output_buffering = of ... -
php读文件的4中方法。
2012-05-10 20:38 906fopen $fp = fopen("downl ... -
百度笔试算法题一道。
2012-05-10 15:02 985一个数组a[0-n-1],a[0-mid]和a[mid+1-n ... -
C与C++动态分配,释放内存的区别
2012-05-08 17:30 160591. malloc()函数 1.1 malloc的 ... -
nginx rewrite
2012-05-04 11:23 0http://blog.cafeneko.info/2010/ ... -
php magic method
2012-05-04 11:16 895php的魔术方法总结 php的魔术方法都是和类有关的。 ... -
诡异的 shell 08 bug
2012-04-30 01:11 770v=08 echo $v shell里以0开头的都会把它当作8 ... -
排序相关
2012-04-22 16:01 0排序分类 内排序: 交换式排序: ... -
php string
2012-04-22 11:33 970一.字符串类型 php一共有8中数据类型 ... -
简单的树的递归、非递归创建,前序中序后序遍历
2012-04-21 10:03 1070c语言写着还挺带感 #in ... -
php 深度优先递归输出路径下所有文件
2012-04-19 21:27 1523<?php $dir = " ... -
简单的栈
2012-04-19 21:14 704#include <stdio.h> #de ... -
简单的循环队列
2012-04-19 21:13 804#include <stdlib.h> ... -
单链表删除一个节点
2012-04-19 21:10 9853有头结点的情况,附加一个逆置 #include <s ... -
KMP与BF,实现了一个非主流next函数
2012-04-19 20:16 928#include <stdlib.h> #i ... -
ip过滤问题
2012-03-22 21:09 0假设有很多段ip段属于教育网的,如何尽快辨别一用户ip是否属于 ... -
求三叉树高度
2012-03-18 17:05 3145有12345个结点的满3叉数的高度为_____写出计算过程 ...
相关推荐
本篇文章将详细介绍几种在PHP中实现字符串截取的方法,包括针对不同编码(如GB2312与UTF-8)的字符串截取技巧。 #### 二、GB2312中文字符串截取 **1.1 GB2312字符串截取函数** ```php function mysubstr($str, $...
在PHP中处理中文字符串截取是一项常见的任务,尤其是在网页开发中。中文字符串通常包含UTF-8编码的字符,这与ASCII编码的英文字符串处理方式有所不同。以下将详细讲解如何在PHP中正确截取中文字符串。 首先,我们...
在进行字符串截取时,如果不考虑编码特性,可能会导致截取结果错误。这篇博客“PHP 不区分中英文截取utf8字符串”提供了一个解决方案,使得在UTF-8环境下可以正确地截取包含中文和英文的字符串,而不影响其完整性。 ...
在进行字符串截取操作时,选择适当且支持多字节的函数,确保文件和输出的编码一致,这些都是避免编码问题的关键。在提供的`test.php`文件中,很可能包含了使用`mb_strcut`或其他类似函数处理UTF-8字符串的示例代码,...
在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和其他编码。
下面介绍了一个可以同时支持UTF-8和GB2312编码的字符串截取函数。 ##### 函数定义: ```php function cut_str($string, $sublen, $start = 0, $code = 'UTF-8') ``` - **$string**:待截取的字符串。 - **$sublen*...
### PHP UTF-8 等宽度截取中英文字符知识点详解 #### 一、背景介绍 ...通过以上内容的学习,可以有效地解决在处理多语言文本时遇到的字符截取问题,特别是在中文环境下,确保字符串截取的准确性及美观性。
在PHP中,字符串截取函数是一个基本的函数,但是它不能正确地处理中文字符串,因为中文字符串在UTF-8编码中占用多个字节,而PHP的截取函数只能截取固定长度的字符串,无法正确地截取中文字符串。因此,需要开发一个...
这两个自定义函数对于处理中文字符串截取的问题非常有用,尤其是在处理用户输入或者从数据库读取GBK或UTF-8编码的中文数据时,可以有效地防止因编码问题导致的乱码。它们体现了PHP在处理多字节编码字符串时的灵活性...
本文将详细介绍几个用于处理中文字符串截取的PHP函数,以及它们的工作原理。 首先,`sysSubStr` 函数是针对UTF-8编码的中文字符串设计的。该函数通过检查每个字符的ASCII值来确定它是否是多字节的中文字符。如果...
为了解决这个问题,我们可以使用`mb_substr()`函数,它是一个多字节安全的字符串截取函数,能够正确处理UTF-8编码或者其他多字节编码的字符串。 `mb_substr()`函数的语法是`mb_substr(string,start,length,encoding...
本节将深入探讨如何使用`substr()`函数以及`mb_substr()`函数来实现字符串截取,特别是在处理UTF-8编码的字符串时的方法。 首先,我们来看`substr()`函数。这是一个内置的PHP函数,用于从字符串的指定位置开始截取...
在PHP中处理中英文混排的字符串截取和计数是一项常见的任务,特别是在网页开发中。传统的`strlen()`和`substr()`函数对于处理中文字符可能会出现不准确的问题,因为它们通常按照字节来计算字符串长度,而中文字符...
在处理字符串操作时,PHP提供了丰富的内置函数,使得我们能够方便地进行字符串截取。这篇博客将深入探讨PHP如何截取字符串,并通过实例来演示其具体用法。 标题中的“php 截取字符串”主要涉及PHP中的两个核心函数...
这些文件很可能包含了不同版本的字符串截取和摘要生成的实现。可能的实现方式包括: - 使用正则表达式寻找关键词或特殊结构来确定摘要。 - 分析句子长度,选择较短的句子作为摘要,以保持摘要的简洁性。 - 使用`str...
总之,`utf8_substr` 函数是基于对UTF-8编码规律的深入理解和正则表达式对多字节字符进行精确检查的高级字符串截取实现,它提供了对字符串在任何位置进行安全截取的能力,这对于处理国际化文本尤其重要。通过阅读和...