首頁 php教程 php手册 PHP字符截取函数,兼容各类gbk,utf-8编码

PHP字符截取函数,兼容各类gbk,utf-8编码

May 25, 2016 pm 04:54 PM
preg_match substr

在PHP中字符截取函数substr只能截取全英文才不会出现乱码如果里面有中文肯定是无法截取的,下面小编来给大家介绍两个兼容各类gbk,utf-8编码字符串截取函数

例1

function CsubStrPro($str, $start, $length, $charset = "utf-8", $suffix = false)
{
    if (function_exists ( "mb_substr" ))
        return mb_substr ( $str, $start, $length, $charset );
    $re ['utf-8'] = "/[x01-x7f]|[xc2-xdf][x80-xbf]|[xe0-xef][x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/";
    $re ['gb2312'] = "/[x01-x7f]|[xb0-xf7][xa0-xfe]/";
    $re ['gbk'] = "/[x01-x7f]|[x81-xfe][x40-xfe]/";
    $re ['big5'] = "/[x01-x7f]|[x81-xfe]([x40-x7e]|xa1-xfe])/";
    preg_match_all ( $re [$charset], $str, $match );
    $slice = join ( "", array_slice ( $match [0], $start, $length ) );
    if ($suffix)
        return $slice . "…";
    return $slice;
}
登入後複製

例2

function subString_UTF8($str, $start, $lenth)
    {
        $len = strlen($str);
        $r = array();
        $n = 0;
        $m = 0;
        for($i = 0; $i < $len; $i++) {
            $x = substr($str, $i, 1);
            $a  = base_convert(ord($x), 10, 2);
            $a = substr(&#39;00000000&#39;.$a, -8);
            if ($n < $start){
                if (substr($a, 0, 1) == 0) {
                }elseif (substr($a, 0, 3) == 110) {
                    $i += 1;
                }elseif (substr($a, 0, 4) == 1110) {
                    $i += 2;
                }
                $n++;
            }else{
                if (substr($a, 0, 1) == 0) {
                    $r[ ] = substr($str, $i, 1);
                }elseif (substr($a, 0, 3) == 110) {
                    $r[ ] = substr($str, $i, 2);
                    $i += 1;
                }elseif (substr($a, 0, 4) == 1110) {
                    $r[ ] = substr($str, $i, 3);
                    $i += 2;
                }else{
                    $r[ ] = &#39;&#39;;
                }
                if (++$m >= $lenth){
                    break;
                }
            }
        }
        return $r;
    } // End subString_UTF8;
}// End String
登入後複製

#由于此函数返回的是一个数组,因此要配合join函数来显示字符串:

#join('',subString_UTF8($str, $start, $lenth));

#在页面显示的时候还可以在此语句后面连一个"..."


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 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教學
1669
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
PHP傳回一個字串在另一個字串中開始位置到結束位置的字串 PHP傳回一個字串在另一個字串中開始位置到結束位置的字串 Mar 21, 2024 am 10:31 AM

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

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

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

PHP的preg_match()函數:如何使用正規表示式來匹配字串 PHP的preg_match()函數:如何使用正規表示式來匹配字串 Nov 04, 2023 am 11:31 AM

PHP的preg_match()函數:如何使用正規表示式來匹配字串,需要具體程式碼範例正規表示式在字串處理中是非常強大且靈活的工具。在PHP中,使用preg_match()函數可以方便地進行字串的正規匹配,從而實現各種複雜的模式匹配和替換操作。本文將介紹preg_match()函數的用法,並提供具體的程式碼範例來幫助讀者更好地理解和應用。 preg_match

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

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

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

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

PHP mb_substr 函數無效的處理方案 PHP mb_substr 函數無效的處理方案 Mar 22, 2024 am 09:00 AM

PHPmb_substr函數無效的處理方案在開發PHP應用程式時,常會用到mb_substr函數來截取字串。然而,有時候可能會遇到mb_substr函數無效的情況,主要是因為在不同環境中字元編碼的問題。為了解決這個問題,我們需要對mb_substr函數進行有效的處理。常見的處理方案是透過設定適當的字元編碼和截取長度來確保mb_substr函數能

PHP將字串的首字母轉換為小寫 PHP將字串的首字母轉換為小寫 Mar 21, 2024 pm 02:11 PM

這篇文章將為大家詳細講解有關PHP將字符串的首字母轉換為小寫,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。將PHP字串的首字母轉換為小寫引言在php中,將字串的首字母轉換為小寫是一個常見的操作。可以透過使用內建函數lcfirst()或字串運算子strtolower()來實現。本指南將深入探討這兩種方法,並提供實例程式碼和最佳實務。方法1:使用lcfirst()函數lcfirst()函數專門用於將字串的首字母轉換為小寫,而其餘字元則保持不變。其文法如下:st

PHP會傳回一個字串在另一個字串中最後一次出現位置開始到結尾的字串 PHP會傳回一個字串在另一個字串中最後一次出現位置開始到結尾的字串 Mar 21, 2024 am 09:51 AM

這篇文章將為大家詳細講解有關PHP返回一個字符串在另一個字符串中最後一次出現位置開始到末尾的字符串,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP中取得字串最後一次出現的位置到末尾的字串問題:如何使用php取得一個字串在另一個字串中最後一次出現的位置開始到末尾的子字串?解決方案:PHP中有兩種主要方法可以取得字串最後一次出現的位置到末尾的子字串:1.使用strrpos()函數strrpos()函數傳回一個字串在另一個字串中最後一次出現的位

See all articles