0){ if([c" /> 0){ if([c">
首頁 後端開發 php教程 自个儿实现php UTF8中文字符串截取

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

Jun 13, 2016 pm 01:10 PM
length str substr

自己实现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判断他们是不是中文。

写的可能比较乱。有需要的谨慎阅读。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

使用java的String.length()函數取得字串的長度 使用java的String.length()函數取得字串的長度 Jul 25, 2023 am 09:09 AM

使用Java的String.length()函數取得字串的長度在Java程式設計中,字串是一種非常常見的資料類型,我們經常需要取得字串的長度,即字串中字元的個數。在Java中,我們可以使用String類別的length()函數來取得字串的長度。下面是一個簡單的範例程式碼:publicclassStringLengthExample{publ

PHP傳回字串第一個字元的 ASCII 值 PHP傳回字串第一個字元的 ASCII 值 Mar 21, 2024 am 11:01 AM

這篇文章將為大家詳細講解有關PHP返回字符串第一個字符的ASCII值,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP傳回字串第一個字元的ASCII值引言在php中,取得字串第一個字元的ASCII值是一個常見的操作,涉及到字串處理和字元編碼基礎知識。 ASCII值用於表示字元在電腦系統中的數字值,對於字元比較、資料傳輸和儲存至關重要。過程取得字串第一個字元的ASCII值涉及以下步驟:取得字串:確定要取得ASCII值的字串。它可以是變數、字串常數

PHP傳回一個字串在另一個字串中開始位置到結束位置的字串 PHP傳回一個字串在另一個字串中開始位置到結束位置的字串 Mar 21, 2024 am 10:31 AM

這篇文章將為大家詳細講解有關PHP返回一個字符串在另一個字符串中開始位置到結束位置的字符串,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP中使用substr()函數從字串中擷取子字串substr()函數可從字串中擷取指定範圍內的字元。其語法如下:substr(string,start,length)其中:string:要從中提取子字串的原始字串。 start:子字串開始位置的索引(從0開始)。 length(可選):子字串的長度。如果未指定,則提

Python內建類型str原始碼分析 Python內建類型str原始碼分析 May 09, 2023 pm 02:16 PM

1Unicode電腦儲存的基本單位是位元組,由8個位元組組成。由於英文只由26個字母加若干符號組成,因此英文字元可以直接用位元組來保存。但是其他語言(例如中日韓等),由於字元眾多,不得不使用多個位元組來進行編碼。隨著電腦科技的傳播,非拉丁文字元編碼技術不斷發展,但是仍有兩個比較大的限制:不支援多語言:一種語言的編碼方案不能用於另一種語言沒有統一標準:例如中文就有GBK、GB2312、GB18030等多種編碼標準由於編碼方式不統一,開發人員就需要在不同編碼之間來回轉換,不可避免地會出現很多錯

length函數用法介紹 length函數用法介紹 Sep 19, 2023 am 11:41 AM

length函數用於傳回指定字串的字元數或位元組數。可以用於計算字串的長度,以便在查詢和處理字串資料時進行操作和判斷。要注意的是length函數計算的是字串的字元數,而不是位元組數。對於多位元組字元集,一個字元可能由多個位元組組成。因此,length函數在計算字串長度時會將多位元組字元作為一個字元來計算。

Python中__str__和__repr__有什麼異同點 Python中__str__和__repr__有什麼異同點 Apr 29, 2023 pm 07:58 PM

__str__和__repr__有什麼異同?字串的表示形式我們都知道,Python的內建函數repr()能夠把物件用字串的形式表達出來,方便我們辨認。這就是“字串表示形式”。 repr()就是透過__repr__這個特殊方法得到一個物件的字串表示形式的。如果沒有實作__repr__,當我們在控制台裡列印一個向量的實例時,得到的字串可能會是。 >>>classExample:pass>>>print(str(Example()))>>>

了解PHP中的substr()函數用於截取字串 了解PHP中的substr()函數用於截取字串 Nov 18, 2023 am 11:27 AM

了解PHP中的substr()函數用於截取字串在PHP語言中,substr()函數是一個非常有用的字串處理函數,它可以用來截取指定位置和長度的字串片段。 substr()函數接受三個參數:待截取的字串、截取的起始位置、截取的長度。以下我們將詳細介紹substr()函數的使用方法,並給出具體的程式碼範例。 substr()函數的基本用法substr()函數的

使用PHP函數 'substr' 取得字串的子字串 使用PHP函數 'substr' 取得字串的子字串 Jul 24, 2023 pm 10:13 PM

使用PHP函數"substr"取得字串的子字串在PHP程式中,經常會遇到需要取得字串的部分內容的情況。這時,我們可以使用PHP內建的函數"substr"來實現。本文將介紹如何使用"substr"函數來取得字串的子字串,並提供一些程式碼範例。一、substr函數的基本用法substr函數用於從字串中取得指定長度的子字串。其基本語法如下:substr(

See all articles