首頁 後端開發 php教程 php多位元組字串

php多位元組字串

Nov 21, 2016 pm 05:58 PM
php php字串

簡介

雖然許多語言每個必要字符都能一對一映射到8 比特(bit)的值,但也有好幾種語言需要非常多的字符來書面通訊,以至於它們的編碼範圍不能僅僅包含在一個位元組裡(一個位元組Byte 由8 個位元組 構成。每一位元只能包含兩種不同的值: 1 或0。所以,一位元組只能夠表示256 種不同的值,即2 的八次方)。 開發多位元組字元編碼方案是為了在基於位元組的常規編碼系統中表達超過 256 個字元。

在你操作(trim、split、splice 等等)多字節編碼的字串的時候,由於在這種編碼方案下,兩個或多個連續字節可能只表達了一個字符,所以你需要使用專門的函數。 否則,當你將不能偵測多位元組字串的函數應用到這個字串的時候,它可能無法偵測多位元組字元的起始位置,並以亂碼字串結尾,基本上遺失了它原來的意思。

mbstring 提供了針對多位元組字串的函數,能夠幫你處理 PHP 中的多位元組編碼。 除此之外,mbstring 還能在可能的字元編碼之間相互進行編碼轉換。 為了方便起見,mbstring 設計成了處理基於 Unicode 的編碼,類似 UTF-8、UCS-2 及諸多單字節的編碼。

mbstring 不是一個預設擴充。這意味著它預設沒有被激活。 你必須在 configure 選項中明確啟動該模組。

HTTP 輸入和輸出

HTTP 輸入/輸出字元編碼轉換同樣也適用於二進位資料。 如果 HTTP 輸入/輸出用到了二進位數據,用戶應控製字元的編碼轉換。

自PHP 4.3.3 起,如果HTML 表單的 enctype 屬性設定為 multipart/form-data,並且 php.ini 裡的mbstring.encoding_translation 設為On, POST 的變數以及檔案的名稱也會被上傳到內部字符編碼。 不過,轉換不會套用於查詢(query)的鍵。

HTTP 輸入在 PHP 腳本裡無法控制 HTTP 輸入字元的轉換。 若要停用 HTTP 輸入字元的轉換,必須在 php.ini 裡設定。

Example #1 在 php.ini 中停用 HTTP 輸入轉換

;; 禁用 HTTP 输入转换
mbstring.http_input = pass
;;禁用 HTTP 输入转换 (PHP 4.3.0 或更高版本)
mbstring.encoding_translation = Off
登入後複製

當 PHP 以 Apache 模組運作。這些設定也可以透過 httpd.conf 內每個虛擬主機(Virtual Host)指令或每個目錄下的 .htaccess來覆寫(override)。
HTTP 輸出輸出字元編碼轉換的使用有幾種方式。 一種是使用 php.ini,另一種是使用 ob_start(),以 mb_output_handler() 為 ob_start的回呼函數。

Example #2 php.ini 設定範例

;; 为所有 PHP 页面启用输出字符编码的转换
;; 启用输出缓冲
output_buffering    = On
;; 设置 mb_output_handler 来进行输出的转换
output_handler      = mb_output_handler
登入後複製

Example #3 腳本範例

<?php
    // 仅为此页面启用输出字符编码的转换
    // 设置 HTTP 输出字符编码为 SJIS
    mb_http_output(&#39;SJIS&#39;);
    // 开始缓冲并指定 "mb_output_handler" 为回调函数
    ob_start(&#39;mb_output_handler&#39;);
?>
登入後複製

多位元組字串函數

mb_check_encoding — 檢查字串在指定的字串函數

mb_check_encoding — 檢查字串在指定的符號寫入轉換

mb_convert_encoding — 轉換字元的編碼

mb_convert_kana — Convert "kana" one from another ("zen-kaku", "han-kaku" and more)

_con

mb_decode_mimeheader — 解碼MIME 頭字段中的字串

mb_decode_numericentity — 依據HTML 數字字串解碼成字元

mb_detect_encoding d_mgg; mimeheader — 為MIME 頭編碼字串

mb_encode_numericentity — Encode character to HTML numeric string reference

mb_encoding_aliases — Get aliases of a known encoding type

_natcha_strwm replace_callback — Perform a regular expresssion seach and replace with multibyte support using a callback

mb_ereg_replace — Replace regular expression with multibyte support

mb_ereg_search_getpos — Returns start point for next supularsearch expression matcha​​anatfig; match

mb_ereg_search_init — Setup string and regular expression for a multibyte regular expression match

mb_ereg_search_pos — Returns position and length of a matched part of the multibyte regular expression for a predefined multibyte string

mb_ereg_search_regs — Returns the matched part of a multibyte regular expression

mb_ereg_search_setpos — Set start point of next regular expression matchm peridperionat fat面莜<;

mb_ereg — Regular expression match with multibyte support

mb_eregi_replace — Replace regular expression with multibyte support ignoring case

mb_eregi — Regular expression match ignoring case with multibyte support

mb_get_info mb_ 1string 的內部編碼_output — 設定/取得HTTP 輸出字元編碼

mb_internal_encoding — 設定/取得內部字元編碼

mb_language — 設定/取得目前的語言

mb_list_encodings — 傳回所有支援編碼的陣列

_pun_list_encodings — 傳回所有支援編碼的數位化

_p_mb_out / POST/COOKIE 資料並設定全域變數

mb_preferred_mime_name — 取得MIME 字串

mb_regex_encoding — Set/Get character encoding for multibyte regextion版本tion the function s s

mb_send_mail — 發送編碼過的郵件

mb_split — 使用正規表示式分割多位元組字串

mb_strcut — 取得字元的部份

mb_strimwidth — 取得依指定寬度截斷的串中首次出現的位置

mb_stristr — 大小寫不敏感地找出字串在另一個字串裡的首次出現

mb_strlen — 取得字串的長度

mb_strpos — 尋找字串在另一個字串中首次找到字串的長度

mb_strpos — 查找字串在另一個字串中首次出現的位置

mb_strrchr — 尋找指定字元在另一個字串中最後一次的出現

mb_strrichr — 大小寫不敏感地找出指定字元在另一個字串中最後一次的出現

mb_strripos在字串中尋找一個字串最後出現的位置

mb_strrpos — 尋找字串在一個字串中最後出現的位置

mb_strstr — 尋找字串在另一個字串裡的首次出現

mb_strtolower _str字串小寫

mb_strtoupper — 讓字串大寫

mb_strwidth — 傳回字串的寬度

mb_substitute_character — 設定/取得

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
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)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

CakePHP 日期和時間 CakePHP 日期和時間 Sep 10, 2024 pm 05:27 PM

為了在 cakephp4 中處理日期和時間,我們將使用可用的 FrozenTime 類別。

CakePHP 檔案上傳 CakePHP 檔案上傳 Sep 10, 2024 pm 05:27 PM

為了進行文件上傳,我們將使用表單助理。這是文件上傳的範例。

討論 CakePHP 討論 CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP 是 PHP 的開源框架。它旨在使應用程式的開發、部署和維護變得更加容易。 CakePHP 基於類似 MVC 的架構,功能強大且易於掌握。模型、視圖和控制器 gu

CakePHP 建立驗證器 CakePHP 建立驗證器 Sep 10, 2024 pm 05:26 PM

可以透過在控制器中新增以下兩行來建立驗證器。

CakePHP 日誌記錄 CakePHP 日誌記錄 Sep 10, 2024 pm 05:26 PM

登入 CakePHP 是一項非常簡單的任務。您只需使用一項功能即可。您可以記錄任何後台程序(如 cronjob)的錯誤、異常、使用者活動、使用者採取的操作。在 CakePHP 中記錄資料很容易。提供了 log() 函數

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

CakePHP 服務 CakePHP 服務 Sep 10, 2024 pm 05:26 PM

本章介紹有關 CakePHP 中可用的身份驗證過程的資訊。

See all articles