php内置函数和扩展,PHP 内置函数strlen 和mbstring扩展函数mb_strlen的区别
#EXAMPLE
$str_uncode = "簡體中文Chinese(Simplified)";
//統(tǒng)計字符串長度
echo strlen($str_uncode).'
';//結(jié)果:31
echo mb_strlen($str_uncode, 'UTF-8').'
';結(jié)果:23
echo mb_strlen($str_uncode, 'GBK').'
';結(jié)果:25
echo mb_strlen($str_uncode, 'GB2312').'
';結(jié)果27
結(jié)果分析:
strlen 把一個中文按3字節(jié)算(復(fù)雜的漢字會按4字節(jié)算)
mb_strlen ?'UTF-8'編碼 一個漢字按一個字節(jié)位來算
PHP內(nèi)置的字符串長度函數(shù)strlen無法正確處理中文字符串,它得 到的只是字符串所占的字節(jié)數(shù)。對于GB2312的中文編碼,strlen得到的值是漢字個數(shù)的2倍,而對于UTF-8編碼的中文,就是3倍的差異了(在 UTF-8編碼下,一個漢字占3個字節(jié))。
采用mb_strlen函數(shù)可以較好地解決這個問題。mb_strlen的用法和 strlen類似,只不過它有第二個可選參數(shù)用于指定字符編碼。例如得到UTF-8的字符串$str長度,可以用 mb_strlen($str,'UTF-8')。
如果省略第二個參數(shù),則會使用PHP的內(nèi)部編碼。內(nèi)部編碼可以通過 mb_internal_encoding()函數(shù)得到。
mb_strlen并不是PHP核心函數(shù),使用前需要確保在php.ini中加載了php_mbstring.dll,即確保“extension=php_mbstring.dll”這一行存在并且沒有被注釋掉,否則會出現(xiàn)未定義函 數(shù)的問題。
MySQL--(了解)可能會用到的內(nèi)置函數(shù)
mysql內(nèi)置函數(shù)列表可以從mysql官方文檔查詢,這里僅分類簡單介紹一些可能會用到的函數(shù).1 數(shù)學(xué)函數(shù)abs(x)pi()mod(x,y)sqrt(x)ceil(x)或者ceiling(x)rand ...
php2go - Go 實現(xiàn) PHP 常用內(nèi)置函數(shù)
[轉(zhuǎn)]http://www.syyong.com/Go/php2go-Use-Golang-to-implement-PHP-s-common-built-in-functions.html 使用Go ...
8. Smarty3:模版中的內(nèi)置函數(shù)
smarty3中對內(nèi)置函數(shù)的修改比較大,加入了很多新的功能:變量聲明.表達式,流程控制,函數(shù).數(shù)組等.可是建議不要在模版中去使用過于復(fù)雜的邏輯,而是要盡量將一些程序設(shè)計邏輯寫到PHP中,并在模版中採用 ...
PHP不使用內(nèi)置函數(shù)intval(),實現(xiàn)字符串轉(zhuǎn)整數(shù)
平時我們用PHP時,將字符串轉(zhuǎn)化為整型時,一般都是使用 intval() 內(nèi)置函數(shù),那么如果我們自己寫,怎么寫一個呢? 此時我們可以利用 ASCII 碼計算得整數(shù)的特性,因為每個字符都對應(yīng)一個?ASC ...
Entity Framework 6 Recipes 2nd Edition(11-12)譯 ->; 定義內(nèi)置函數(shù)
11-12. 定義內(nèi)置函數(shù) 問題 想要定義一個在eSQL 和LINQ 查詢里使用的內(nèi)置函數(shù). 解決方案 我們要在數(shù)據(jù)庫中使用IsNull 函數(shù),但是EF沒有為eSQL 或LINQ發(fā)布這個函數(shù). 假設(shè)我 ...
Oracle內(nèi)置函數(shù):時間函數(shù),轉(zhuǎn)換函數(shù),字符串函數(shù),數(shù)值函數(shù),替換函數(shù)
dual單行單列的隱藏表,看不見 但是可以用,經(jīng)常用來調(diào)內(nèi)置函數(shù).不用新建表 時間函數(shù) sysdate 系統(tǒng)當(dāng)前時間 add_months 作用:對日期的月份進行加減 寫法:add_months(日期 ...
python內(nèi)置函數(shù)
python內(nèi)置函數(shù) 官方文檔:點擊 在這里我只列舉一些常見的內(nèi)置函數(shù)用法 1.abs()[求數(shù)字的絕對值] >>> abs(-13) 13 2.all() 判斷所有集合元素都為真的 ...
DAY5 python內(nèi)置函數(shù)+驗證碼實例
內(nèi)置函數(shù) 用驗證碼作為實例 字符串和字節(jié)的轉(zhuǎn)換 字符串到字節(jié) 字節(jié)到字符串
python之常用內(nèi)置函數(shù)
python內(nèi)置函數(shù),可以通過python的幫助文檔 Build-in Functions,在終端交互下可以通過命令查看 >>> dir("__builtins__&quo ...
隨機推薦
在Linux上運行ASP.NET vNext
最新的ASP.NET vNext完全開源且可以跨多個平臺運行,在Windows環(huán)境下我嘗試了下,幾乎沒花什么工夫就跑起了Sample,而在Linux環(huán)境下則要多花了不少時間,所以特別記錄下整個過程,希 ...
獲取HTML
public class GetHtml { public string GetWebRequest(string url) { Uri uri = new Uri(url); WebRequest ...
最精簡的IOCP封裝
最精簡的IOCP封裝,DELPHI XE8直接編譯通過.Winsock2.pas即使用DELPHI自帶的,相信XE7也能編譯,或者XE6,XE5也能. 單說Winsock2.pas,我見過無數(shù)種版本的 ...
pku3668 Game of Lines
http://poj.org/problem?id=3668 水題,STL #include #include using namespace ...
cf500C New Year Book Reading
C. New Year Book Reading time limit per test?2 seconds memory limit per test?256 megabytes input?sta ...
混淆篇之原生DOM操作方法小結(jié)
1.0?? DOM結(jié)構(gòu) 1.1先來看結(jié)構(gòu)圖: 父節(jié)點?? ??? ?兄弟節(jié)點?? ??? ?當(dāng)前節(jié)點?? ??? ??? ?屬性節(jié)點?? ??? ??? ?子節(jié)點?? ??? ?兄弟節(jié)點一般任意一個節(jié) ...
[jbdj]SpringMVC框架(1)快速入門
1)springmvc快速入門(傳統(tǒng)版) 步一:創(chuàng)建springmvc_demo一個web應(yīng)用 步二:導(dǎo)入springioc,springweb , springmvc相關(guān)的jar包 步三:在/WEB ...
Jetty的工作原理
Jetty的工作原理 Jetty 的基本架構(gòu) Jetty 目前的是一個比較被看好的 Servlet 引擎,它的架構(gòu)比較簡單,也是一個可擴展性和非常靈活的應(yīng)用服務(wù)器,它有一個基本數(shù)據(jù)模型,這個數(shù)據(jù)模型就 ...
asp.net導(dǎo)入后臺代碼
public void Upload(string information){ int Bank = 0; for (int i = 0; i
總結(jié)
以上是生活随笔為你收集整理的php内置函数和扩展,PHP 内置函数strlen 和mbstring扩展函数mb_strlen的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php strrchar,php文件上传
- 下一篇: php常见面试题