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

自從有了黑帽SEO,對付SPAM(垃圾留言)一直是網站工作人員的工作內容之一。迫害我們的不是垃圾留言羣發機,就是垃圾用戶註冊機。

判斷字符串中是否含有中文是對付SPAM的方法之一,可以有效的阻止純英文的垃圾留言,還可以用這個方法規範用戶註冊。看下面的代碼,兼容gb2312和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 "錯誤輸入";
}
?>

另附,雙字節字符編碼範圍

1. GBK (GB2312/GB18030)
\x00-\xff GBK雙字節編碼範圍
\x20-\x7f ASCII
\xa1-\xff 中文 gb2312
\x80-\xff 中文 gbk

2. UTF-8 (Unicode)
\u4e00-\u9fa5 (中文)
\x3130-\x318F (韓文
\xAC00-\xD7A3 (韓文)
\u0800-\u4e00 (日文)*/

摘自:http://www.wilf.cn/post/php-match-chinese-str.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章