本文目錄一覽:
php 幾個字節 函數
有兩個函數可以取PHP字符串長度
———————————————————————-
strlen — 獲取字符串長度
int strlen ( string $string )
返回給定的字符串 string 的長度。參數 string 需要計算長度的字符串。
返回值 成功則返回字符串 string 的長度;如果 string 為空,則返回 0。
———————————————————————-
mb_strlen — 獲取字符串的長度 (PHP 4 = 4.0.6, PHP 5)
mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )
獲取一個 string 的長度。
參數 str 要檢查長度的字符串。
encoding 參數為字符編碼。如果省略,則使用內部字符編碼。
返回值
返回具有 encoding 編碼的字符串 str 包含的字符數。 多字節的字符被計為 1。
如果給定的 encoding 無效則返回 FALSE。
特別要注意的是:
有關中文的問題。PHP內置的字符串長度函數strlen無法正確處理中文字符串,它得到的只是字符串所佔的字節數。對於GB2312的中文編碼,strlen得到的值是漢字個數的2倍,而對於UTF-8編碼的中文,就是3倍的差異了(在UTF-8編碼下,一個漢字佔3個字節)。
採用mb_strlen函數可以較好地解決這個問題。mb_strlen的用法和strlen類似,只不過它有第二個可選參數用於指定字符編碼。例如得到UTF-8的字符串$str長度,可以用mb_strlen($str,’UTF-8′)。如果省略第二個參數,則會使用PHP的內部編碼。內部編碼可以通過mb_internal_encoding()函數得到。需要注意的是,mb_strlen並不是PHP核心函數,使用前需要確保在php.ini中加載了php_mbstring.dll,即確保“extension=php_mbstring.dll”這一行存在並且沒有被注釋掉,否則會出現未定義函數的問題。
php如何判斷一個字所佔的字節數
GB 18030的雙字節部分完全採用了GBK的內碼系統。在此基礎上,做了四字節擴展,四個字節的編碼空間依次是:0x81到0xFE,0x30到0x39,0x81到0xFE,0x30到0x39。總共1,587,600個碼位
就是說你不能僅僅判斷一個字節,如果第二個字節的值是在0x30到0x39範圍里時,他就是4字節的漢字了
PHP如何獲取中文字符串長度 utf8
PHP對中文字符串的處理一直困擾於剛剛接觸PHP開發的新手程序員。下面簡要的剖析一下PHP對中文字符串長度的處理:
PHP自帶的函數如strlen()、mb_strlen()都是通過計算字符串所佔字節數來統計字符串長度的,一個英文字符佔1字節。例:
$enStr = ‘Hello,China!’;
echo strlen($enStr); // 輸出:12
而中文則不然,做中文網站一般會選擇兩種編碼:gbk/gb2312或是utf-8。utf-8能兼容更多的字符,所以受到很多站長的喜愛。gbk與utf-8對中文的編碼不同,導致中文在gbk與utf-8編碼下所佔字節也有差異。
gbk編碼下每個中文字符所佔字節為2,例:
$zhStr = ‘您好,中國!’;
echo strlen($zhStr); // 輸出:12
utf-8編碼下每個中文字符所佔字節為3,例:
$zhStr = ‘您好,中國!’;
echo strlen($zhStr); // 輸出:18
那麼如何計算這組中文字符串的長度呢?有人可能會說gbk下獲取中文字符串長度除以2,utf-8編碼下除以3不就行了嗎?但是您要考慮字符串並不老實,99%的情況會以中英混合的情況出現。
這是WordPress中的一段代碼,主要思想就是先用正則將字符串分解為個體單元,然後再計算單元的個數即字符串的長度,代碼如下(只能處理utf-8編碼下的字符串):
$zhStr = ‘您好,中國!’;
$str = ‘Hello,中國!’;
// 計算中文字符串長度
function utf8_strlen($string = null) {
// 將字符串分解為單元
preg_match_all(“/./us”, $string, $match);
// 返回單元個數
return count($match[0]);
}
echo utf8_strlen($zhStr); // 輸出:6
echo utf8_strlen($str); // 輸出:9
php 整型占幾個字節
據官方資料:
整型數的字長和平台有關,儘管通常最大值是大約二十億(32 位有符號)。 PHP 不支持無符號整數。Integer值的字長可以用常量PHP_INT_SIZE來表示,自 PHP 4.4.0 和 PHP 5.0.5後,最大值可以用常量PHP_INT_MAX來表示。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/243357.html