php求字串長度的函數是什麼

青灯夜游
發布: 2023-03-16 13:06:01
原創
5875 人瀏覽過

php求字串長度的函數有兩個:1、strlen()函數,可以計算英文字串的長度,語法為「strlen($string)」;2、mb_strlen()函數,可以透過設定字元編碼,計算英文字串、中文字串或中英混合字串的長度,語法為「mb_strlen($string,"字元編碼")」。

php求字串長度的函數是什麼

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

在PHP 中常用的計算字串長度的函數有兩個,分別是strlen() 和mb_strlen() 函數。當處理全英文字串時,這兩個函數的效果是一樣的,而處理中英文混合或純中文的字串時,這兩個函數會有一些差異:

  • strlen()函數可以計算英文字串的長度,但對中英文混合或純中文的字串,無法精確計算長度。

  • mb_strlen()函數可以計算英文字串、中文字串或中英混合字串的長度。

1、strlen() 函數求字串長度

strlen() 函數可以傳回給定字串的長度,其語法格式如下:

strlen($string)
登入後複製
  • 參數$string 為需要計算長度的字串。如果 $string 為空則回傳 0。

注意:在strlen() 函數中,數字、英文、小數點、底線和空格佔一個字元長度;而一個GB2312 編碼的漢字佔兩個字元長度,一個UTF-8 編碼的漢字佔三個字元長度。

範例:

<?php
header("Content-type:text/html;charset=utf-8");
$str = "hello world!";
echo &#39;字符串 “&#39;.$str.&#39;” 的长度为:&#39;.strlen($str).&#39;<br>&#39;;
?>
登入後複製

$str字串包含10個英文字母、1個空格和1個英文感嘆號,共12個字符,因此輸出長度為12。

php求字串長度的函數是什麼

但strlen()函數不適合用來計算中文字串長度,因為在該函數中一個GB2312 編碼的漢字佔兩個字元長度,一個UTF-8編碼的漢字佔三個字元長度。

<?php
header("Content-type:text/html;charset=utf-8");
$str = "hello 你好!";
echo &#39;字符串 “&#39;.$str.&#39;” 的长度为:&#39;.strlen($str).&#39;<br>&#39;;
?>
登入後複製

php求字串長度的函數是什麼

2、mb_strlen() 函數求字串長度

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

mb_strlen($str [, $encoding = mb_internal_encoding()])
登入後複製
  • $str 為需要計算長度的字串

  • $encoding 是可選參數,為字元編碼,如果省略則使用內部字元編碼。

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

注意:與 strlen() 函數不同,在 mb_strlen() 函數中,無論是漢字,或是英文、數字、小數點、底線和空格,都只佔一個字元長度。

【範例】 使用 mb_strlen() 函數取得字串長度。

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

$str = "欢迎来到PHP中文网!";
echo &#39;<br>字符串 “&#39;.$str.&#39;” 的长度为:&#39;.mb_strlen($str,&#39;utf-8&#39;).&#39;<br>&#39;;
?>
登入後複製

php求字串長度的函數是什麼

可以看出,我們可以透過設定對應的$encoding參數,就能很好的處理中文字串的長度問題。

推薦學習:《PHP影片教學

以上是php求字串長度的函數是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板