溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php如何計算字符串占多少字節(jié)

發(fā)布時間:2022-09-01 11:16:52 來源:億速云 閱讀:231 作者:iii 欄目:編程語言

這篇文章主要介紹“php如何計算字符串占多少字節(jié)”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“php如何計算字符串占多少字節(jié)”文章能幫助大家解決問題。

在php中,可以利用strlen()函數(shù)來計算字符串的字節(jié)數(shù)。該函數(shù)是按字節(jié)來計算字符串長度的,可以統(tǒng)計字符串所占的字符長度(字節(jié)數(shù)),語法“strlen(字符串)”。在該函數(shù)的計算中,英文逗號、數(shù)字、英文字母、小數(shù)點等都只占一個字節(jié);而一個GB2312編碼的漢字占兩個字節(jié),一個UTF-8編碼的漢字占三個字節(jié)。

php如何計算字符串占多少字節(jié)

本教程操作環(huán)境:windows7系統(tǒng)、PHP8.1版、DELL G3電腦

php中不同的編碼格式下字符占用的字節(jié)是不同的:

  • ANSI編碼格式下一個中文字符占2個字節(jié),一個英文字符占1個字節(jié);

  • UTF-8編碼格式下一個中文字符占3個字節(jié),一個英文字符占1個字節(jié)。

而php中,可以利用strlen()函數(shù)來計算字符串的字節(jié)數(shù)。

strlen()函數(shù)是按字節(jié)來計算字符串長度的。

strlen($string)

該函數(shù)只接受一個參數(shù)$string(要計算的字符串),如果該參數(shù)傳遞的值為空則返回 0。

strlen()函數(shù)中,(英文狀態(tài)下)逗號、數(shù)字、英文字母、小數(shù)點.、下劃線、空格等都只占一個字符長度(字節(jié))。

<?php
header("Content-type:text/html;charset=utf-8");
$str = "hello world!";
echo '字符串 “'.$str.'” 占:'.strlen($str).' 個字節(jié)<br>';
?>

php如何計算字符串占多少字節(jié)

分析:上例的字符串中,有10個英文字母,一個空格、一個英文感嘆號;合計:12個個字節(jié)。

strlen()函數(shù)中,一個 GB2312 編碼的漢字占兩個字符長度(字節(jié)),一個 UTF-8 編碼的漢字占三個字符長度(字節(jié))。

<?php
header("Content-type:text/html;charset=utf-8");
$str = "!";
echo '字符串 “'.$str.'” 占:'.strlen($str).' 個字節(jié)<br>';
?>

php如何計算字符串占多少字節(jié)

上例中,"!"是中文感嘆號,因此占三個字節(jié)。

<?php
header("Content-type:text/html;charset=utf-8");
$str = "歡迎";
echo '字符串 “'.$str.'” 占:'.strlen($str).' 個字節(jié)<br>';
?>

php如何計算字符串占多少字節(jié)

上例中,包含兩個漢字,因此占6個字節(jié)。

<?php
header("Content-type:text/html;charset=utf-8");
$str = "hello,歡迎來到這里!";
echo '字符串 “'.$str.'” 占:'.strlen($str).' 個字節(jié)<br>';
?>

php如何計算字符串占多少字節(jié)

上例中,包含5個英文字符,6個漢字,一個中文感嘆號和一個中文逗號;因此占5+(8*3)=29個字節(jié)。

說明:在計算字符串的字符個數(shù)時,strlen()函數(shù)只能處理英文字符串,對中文或中英混合字符串不友好。此時,就需要利用

mb_strlen()函數(shù)了,該函數(shù)可以按字符來計算字符串長度的。

擴展知識:mb_strlen() 函數(shù)

mb_strlen() 函數(shù)同樣可以返回字符串的長度,語法格式如下:

mb_strlen($str [, $encoding = mb_internal_encoding()])
  • $str 為需要計算長度的字符串

  • $encoding 是可選參數(shù),為字符編碼,如果省略則使用內(nèi)部字符編碼。

mb_strlen() 函數(shù)的返回值為具有 $encoding 編碼的字符串 $str 所包含的字符數(shù),如果 $encoding 無效則返回 false。

注意:與 strlen() 函數(shù)不同,在 mb_strlen() 函數(shù)中,無論是漢字,還是英文、數(shù)字、小數(shù)點、下劃線和空格,都只占一個字符長度。

【示例】 使用 mb_strlen() 函數(shù)獲取字符串長度。

<?php
header("Content-type:text/html;charset=utf-8");
$str = "hello 你好!";
echo '字符串 “'.$str.'” 的長度為:'.mb_strlen($str,"utf-8").'<br>';

$str = "歡迎來到億速云!";
echo '<br>字符串 “'.$str.'” 的長度為:'.mb_strlen($str,'utf-8').'<br>';
?>

php如何計算字符串占多少字節(jié)

可以看出,我們可以通過設(shè)置對應(yīng)的$encoding參數(shù),就能很好的處理中文字符串的長度問題。

關(guān)于“php如何計算字符串占多少字節(jié)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI