1. 程式人生 > >php判斷字串長度 strlen()與mb_strlen()函式

php判斷字串長度 strlen()與mb_strlen()函式

我們知道在php中要判斷字串長度我們只要使用strlen()與mb_strlen()函式既可以了,但是並不是我們想得這麼簡單,特別是在對中英文混合時上面函式有點力不從心哦,下面我來給各位朋友介紹。

strlen()

PHP strlen() 函式

定義和用法

strlen() 函式返回字串的長度。

語法

strlen(string)

引數:string 

描述:必需。規定要檢查的字串。

echo strlen("www.php100.com!"); //13
echo strlen("中國人!");//6 strlen得到的值是漢字個數的2倍


<?php 
$str=‘中文a字1符‘; 
echo strlen($str); 
echo ‘<br />‘; 
echo mb_strlen($str,‘UTF8‘); 
//輸出結果 
//14 
//6 
?>
結果分析:在strlen計算時,對待一個UTF8的中文字元是3個長度,所以“中文a字1符”長度是3*4+2=14

在mb_strlen計算時,選定內碼為UTF8,則會將一箇中文字元當作長度1來計算,所以“中文a字1符”長度是6

mb_strlen()函式

需要注意的是,mb_strlen並不是PHP核心函式,使用前需要確保在php.ini中載入了php_mbstring.dll,即確保

“extension=php_mbstring.dll”這一行存在並且沒有被註釋掉,否則會出現未定義函 數的問題。

<?php 
$str=‘中文a字1符‘; 
//計算如下 
echo (strlen($str) + mb_strlen($str,‘UTF8‘)) / 2; 
echo 
//輸出結果 
//10 
?>

“中文a字1符” 的strlen($str)值是14,mb_strlen($str)值是6,則可以計算出“中文a字1符”的佔位是10.

講解這兩者之間的區別

<span style="font-size:18px;"><?php
//測試時檔案的編碼方式要是UTF8
$str='中文a字1符';
echo strlen($str).'<br>';//14
echo mb_strlen($str,'utf8').'<br>';//6
echo mb_strlen($str,'gbk').'<br>';//8
echo mb_strlen($str,'gb2312').'<br>';//10
?> </span>

結果分析:在strlen計算時,對待一個UTF8的中文字元是3個長度,所以“中文a字1符”長度是3*4+2=14,在mb_strlen

計算時,選定內碼為UTF8,則會將一箇中文字元當作長度1來計算,所以“中文a字1符”長度是6 .


雖然上面函式可以簡單解決一些中英文混合問題,但是不能用於實實際中,下面我來給各位朋友介紹其它比較好的辦




相關推薦

php判斷字串長度 strlen()mb_strlen()函式

我們知道在php中要判斷字串長度我們只要使用strlen()與mb_strlen()函式既可以了,但是並不是我們想得這麼簡單,特別是在對中英文混合時上面函式有點力不從心哦,下面我來給各位朋友介紹。 strlen() PHP strlen() 函式 定義和用法 s

php中常用的字符串長度函數strlen()mb_strlen()實例解釋

php php字符串 字符串長度 strlen() mb_strlen() int strlen ( string $string ) int strlen ( string $string ) 獲取給定字符串的[字節]長度 成功則返回字符串$string的長度,如果$string為空,

php獲取字串長度——strlenmb_strlen的區別

strlen: <?php $a='abc123'; $b=strlen($a); echo $b; ?> <?php $a='abc123你好'; $b=strlen($a); echo $b; ?> <?php $a='你好世界'; $b=s

PHP內建函式分析之strlen mb_strlen

宣告:本文為斯人原創,全部為作者一一分析得之,有不對的地方望賜教。 部落格地址:PHP技術部落格 在CSDN也會同步更新的哦. 歡迎轉載,轉載請註明出處  在PHP裡 有兩個計算 字串個數的函式 一個是 strlen,一個是mb_strlen; 先來看看幫助手冊的定義 strlen strlen

PHP獲取字串長度strlenmb_strlen的區別

在PHP中,strlen與mb_strlen是求字串長度的函式,但是對於一些初學者來說,如果不看手冊,也許不太清楚其中的區別。 下面通過例子,講解這兩者之間的區別。 先看例子: <?php  //測試時檔案的編碼方式要是UTF8 $str='中文a字1符';  e

php--strlen()mb_strlen的作用區別

encoding 字符串長度 php.ini php odin int 字節數 ring enc 在PHP中,strlen與mb_strlen是求字符串長度的函數PHP內置的字符串長度函數strlen無法正確處理中文字符串,它得到的只是字符串所占的字節數。對於GB2312的

字串長度strlenmb_strlen

strlen,mb_strlen都是計算字串長度的函式,但是還是有一些不同點 strlen strlen(string $string) 返回值為整數 strlen(string表示接受一個字串變數) 注:返回字串所佔位元組個數,並不是真正的字串個數 $str = 'abcd'

PHP統計字串長度和切割字串函式(解決亂碼問題,和切割中文問題)

統計字串長度函式:mb_strlen('要統計的字串','字符集(utf-8)');           例項:$a = ‘12測試測試測試測試測試1231l’;           &nbs

PHP 字串獲取 substr strstr 函式

PHP 字串獲取 用於從字串中獲取指定字串。 相關函式如下: substr():從字串中獲取其中的一部分strstr():查詢字串在另一個字串中第一次出現的位置,並返回從該位置到字串結尾的所有字元subchr():同 strstr() strrchr():查詢

PHPstrlenmb_strlen函式的區別

在PHP中,strlen與mb_strlen是求字串長度的函式,但是對於一些初學者來說,如果不看手冊,也許不太清楚其中的區別 在PHP裡有兩個計算字串個數的函式 一個是 strlen,一個是mb_strlen; 先來看看手冊中的定義strlen strlen — 獲取字串

php判斷字串字母大小寫函式例項

提供一款簡單例項的PHP教程判斷大小寫字母函式 方法一: function checkcase($str) { if(preg_match('/^[a-z]+$/', $s

PHP 字串分割 explode str_split 函式

PHP 字串分割 用於分割字串。 相關函式如下: ·        explode():使用一個字串分割另一個字串 explode() 本函式為 implode() 的反函式,使用一個字串分割另一個字串,返回一個數組。 語法: arrayexplode( string

php取得字串長度函式

1、strlen() 函式返回字串的長度(php預設支援strlen函式) 例: strlen("中國人!");//6 strlen得到的值是漢字個數的2倍 strlen("www.php.com!"); //10 2、mb_strlen()函式需要開啟一個外掛 將php_

PHP判斷字串中是否含有中文

<? $str = "測試中文"; echo $str; echo "<hr>"; //if (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str)) { //只能在GB2312情況下使用 //if (preg_match("

Python分隔字串re.splitsplit函式

split:多個分隔符 單一分隔符,使用str.split()即可  re.split:多個分隔符,複雜的分隔情況(用|隔開) 單一分隔符,str.split()與 re.split()效果是一樣的 多個單一 分隔符 時 ,”[]”與 “|”的 效果是一樣的,但是 請注意 使

shell 判斷字串長度是否為0

  test.sh #!/bin/bash echo "enter the string:" read filename if test -z $filename ; then echo "the length is 0" else echo "the length is not 0" f

PHP提取字串中視訊url地址函式,可直接使用

PHP程式提取字串中的視訊url地址,可直接使用,使用方法: get_content_video($contents); /** * PHP提取字串中視訊url地址 * @ Linyufan.com * @ 2018.9.11 */ function get_co

PHP使用字串傳遞變數名和函式

<?php function showTime($val = null) { if ($val) { return time(); } else { return 'param error!'; } } $para

php 判斷字串中是否包含另一個字串

<?php if(strpos('www.baidu.com','www') !==false){  echo '包含該字串'; }else{        echo '不包含該字串'; }

JS判斷字串長度(英文佔1個字元,中文漢字佔2個字元)

//計算字串長度(英文佔1個字元,中文漢字佔2個字元) 方法一: [javascript] view plain copy String.prototype.gblen = function() {         var len = 0;