在php中,可以使用preg_match()函數(shù)配合正則表達(dá)式來判斷字符串里含不含中文,語法格式“preg_match("/[x7f-xff]/", 字符串)”;如果返回1則含有中文,如果返回0則不含中文。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版,DELL G3電腦
自從有了黑帽SEO,對付SPAM(垃圾留言)一直是網(wǎng)站工作人員的工作內(nèi)容之一。迫害我們的不是垃圾留言群發(fā)機(jī),就是垃圾用戶注冊機(jī)。
判斷字符串中是否含有中文是對付SPAM的方法之一,可以有效的阻止純英文的垃圾留言,還可以用這個方法規(guī)范用戶注冊。看下面的代碼,兼容gb2312和utf-8。
<?php header('content-type:text/html;charset=utf-8'); $str = "測試中文"; echo $str; echo "<hr>"; //if (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str)) { //只能在GB2312情況下使用 //if (preg_match("/^[x7f-xff]+$/", $str)) { //兼容gb2312,utf-8 //判斷字符串是否全是中文 if (preg_match("/[x7f-xff]/", $str)) { //判斷字符串中是否有中文 echo "含有中文,正確輸入"; } else { echo "不含中文,錯誤輸入"; } ?>
輸出:
另附,雙字節(jié)字符編碼范圍
1. GBK (GB2312/GB18030)
x00-xff GBK雙字節(jié)編碼范圍
x20-x7f ASCII
xa1-xff 中文 gb2312
x80-xff 中文 gbk
2. UTF-8 (Unicode)
u4e00-u9fa5 (中文)
x3130-x318F (韓文
xAC00-xD7A3 (韓文)
u0800-u4e00 (日文)*/
推薦學(xué)習(xí):《PHP視頻教程》