php判斷輸入不超過(guò)mysql的varchar字段的長(zhǎng)度范圍
更新時(shí)間:2011年06月24日 21:52:39 作者:
varchar類(lèi)型字段,如果你設(shè)置長(zhǎng)度為10,那么不論漢字和英文都可以存10個(gè)。
但是如果在utf-8編碼下,一個(gè)漢字是占3個(gè)字符長(zhǎng)度的,比如字符串$str=”你好啊!!”;
如果你用strlen函數(shù)來(lái)判斷,長(zhǎng)度是11,正好超過(guò)了varchar的長(zhǎng)度,但實(shí)際上確不是這樣,如果直接到phpmyadmin里面執(zhí)行insert語(yǔ)句,這條字符串是可以插入的!
對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō),它的長(zhǎng)度是5,那么我們?nèi)绾斡肞HP來(lái)得到這個(gè)長(zhǎng)度呢?使用iconv_strlen()函數(shù)!
echo iconv_strlen($str,'utf-8′);
注意第二個(gè)參數(shù),是當(dāng)前字符集,這樣根據(jù)不同的字符集你得到的結(jié)果都是根據(jù)一個(gè)字符占一個(gè)長(zhǎng)度計(jì)算來(lái)的!
上面的語(yǔ)句,將輸出5,怎么樣,你會(huì)判斷了嗎?
如果你用strlen函數(shù)來(lái)判斷,長(zhǎng)度是11,正好超過(guò)了varchar的長(zhǎng)度,但實(shí)際上確不是這樣,如果直接到phpmyadmin里面執(zhí)行insert語(yǔ)句,這條字符串是可以插入的!
對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō),它的長(zhǎng)度是5,那么我們?nèi)绾斡肞HP來(lái)得到這個(gè)長(zhǎng)度呢?使用iconv_strlen()函數(shù)!
echo iconv_strlen($str,'utf-8′);
注意第二個(gè)參數(shù),是當(dāng)前字符集,這樣根據(jù)不同的字符集你得到的結(jié)果都是根據(jù)一個(gè)字符占一個(gè)長(zhǎng)度計(jì)算來(lái)的!
上面的語(yǔ)句,將輸出5,怎么樣,你會(huì)判斷了嗎?
相關(guān)文章
php計(jì)算兩個(gè)整數(shù)的最大公約數(shù)常用算法小結(jié)
這篇文章主要介紹了php計(jì)算兩個(gè)整數(shù)的最大公約數(shù)常用算法,實(shí)例總結(jié)了求最大公約數(shù)的三種常用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03PHP中$_FILES的使用方法及注意事項(xiàng)說(shuō)明
本篇文章主要是對(duì)PHP中$_FILES的使用方法及注意事項(xiàng)進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-02-02php獲取textarea的值并處理回車(chē)換行的方法
這篇文章主要介紹了php獲取textarea的值并處理回車(chē)換行的方法,涉及到對(duì)特殊字符的轉(zhuǎn)換與處理,需要的朋友可以參考下2014-10-10php array_map使用自定義的函數(shù)處理數(shù)組中的每個(gè)值
這篇文章主要介紹了php array_map使用自定義的函數(shù)處理數(shù)組中的每個(gè)值的相關(guān)資料,需要的朋友可以參考下2016-10-10