php中文判斷
❶ php正則判斷字元串是否含有中文
functionchk_cn($str){
if(preg_match('|[x{4e00}-x{9fa5}]+?|u',$str)){
returntrue;
}
returnfalse;
}
調用這個 函數,返回true則是含有中文,false則無中文。
另外,x{4e00}-x{9fa5} 這個范圍我也不太確定是不是包含所有的中文范圍,沒有認真研究它的取值范圍。
❷ php中判斷字元串是否全是中文或含有中文的
123456789101112<?$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 "錯誤輸入";}?>
❸ PHP判斷字元串中是否含有中文
一,判斷全是中文
$str="'324是";
if(!eregi("[^\x80-\xff]","$str")){
echo "全是中文";
}else{
echo "不是";
}
二,判斷含有中文
$str = "中文";
if (preg_match("/[\x7f-\xff]/", $str)) {
echo "含有中文";
}else{
echo "沒有中文";
}
或
$pattern = '/[^\x00-\x80]/';
if(preg_match($pattern,$str)){
echo "含有中文";
}else{
echo "沒有中文";
}
如果還有問題可以去後盾網論壇問題求助專區,希望我的回答對你有幫助
❹ PHP判斷是中文還是英文
/*
判斷輸入是否是純數字,英文,漢字等
利用php的mb_strlen和strlen函數就可以輕松得知字元串的構成是全英文、中英混合、全中文。
1: 如果strlen返回的字元長度和mb_strlen以當前編碼計算的長度一致,則為純英文字元串
2: 如果strlen返回的字元長度和mb_strlen以當前編碼計算的長度不一致,並且strlen返回值和mb_strlen返回值求余後得0 則為全漢字
3: 如果strlen返回的字元長度和mb_strlen以當前編碼計算的長度不一致,並且strlen返回值和mb_strlen返回值求余後不為0 則為中英混合
*/
<?php
$str = "123456abc漢字";
$x = mb_strlen($str, 'gb2312');
$y = strlen($str);
echo "-----------$str----------<br>";
echo "x: ".$x."<br>";
echo "y: ".$y."<br>";
?>
❺ php中判斷字元串是否全是中文或含有中文的實現代碼
php中判斷字元串是否全是中文或含有中文的實現代碼,主要是利用正則匹配中文判定。
一,判斷全是中文
復制代碼 代碼如下:
$str="'324是";
if(!eregi("[^\x80-\xff]","$str")){
echo "全是中文";
}else{
echo "不是";
}
二,判斷含有中文
復制代碼 代碼如下:
$str = "中文";
if (preg_match("/[\x7f-\xff]/", $str)) {
echo "含有中文";
}else{
echo "沒有中文";
}
或
$pattern = '/[^\x00-\x80]/';
if(preg_match($pattern,$str)){
echo "含有中文";
}else{
echo "沒有中文";
}
我這幾種方法都是在utf-8下面測試的,別的編碼下沒有測試過。
❻ php中如何判斷中英文字元
PHP判斷中英文的依據是字元的ASII值,而字元的ASII值也因編碼不同而不同。為了能編寫判斷中英文字元的php程序,我們必須先來了解下各編碼下中文英文字元的ASII值范圍:
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
(日文)
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD
HTML
4.0
Transitional//EN">
<HTML>
<HEAD>
<TITLE>
New
Document
</TITLE>
<META
http-equiv="Content-Type"
content="text/html;
charset=utf-8">
</HEAD>
<BODY>
<?
$str
=
"中文";
echo
$str;
echo
"<hr>";
//if
(preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",
$str))
{
//只能在GB2312情況下使用
if
(preg_match("/^[x7f-xff]+$/",
$str))
{
//兼容gb2312,utf-8
echo
"正確輸入";
}
else
{
echo
"錯誤輸入";
}
?>
</BODY>
</HTML>
❼ PHP檢查字元串是否全部是中文,用於漢字姓名判斷
當做一些電商網站的時候,會遇到很多時候購物要實名認證,對於國內的人來說,輸入姓名的時候都要輸入漢字。漢字而不是中文,為什麼這么說。「。」這個也是中文,所以說漢字比較准確一點。
分析
還有一些少數民族裡面含有·這個符號。
所以演算法的核心就是全部為中文或者全部為中文並且有·這個符號的兩種情況才允許姓名通過驗證。
代碼如下:
❽ php 中文和編碼判斷代碼
編碼范圍1.
GBK
(GB2312/GB18030)
\x00-\xff
GBK雙位元組編碼范圍
\x20-\x7f
ASCII
\xa1-\xff
中文
\x80-\xff
中文
2.
UTF-8
(Unicode)
\u4e00-\u9fa5
(中文)
\x3130-\x318F
(韓文
\xAC00-\xD7A3
(韓文)
\u0800-\u4e00
(日文)
ps:
韓文是大於[\u9fa5]的字元
正則例子:
preg_replace(」/([\x80-\xff])/」,」",$str);
preg_replace(」/([u4e00-u9fa5])/」,」",$str);
二、代碼例子
復制代碼
代碼如下:
//判斷內容里有沒有中文-GBK
(PHP)
function
check_is_chinese($s){
return
preg_match('/[\x80-\xff]./',
$s);
}
//獲取字元串長度-GBK
(PHP)
function
gb_strlen($str){
$count
=
0;
for($i=0;
$i<strlen($str);
$i++){
$s
=
substr($str,
$i,
1);
if
(preg_match("/[\x80-\xff]/",
$s))
++$i;
++$count;
}
return
$count;
}
//截取字元串字串-GBK
(PHP)
function
gb_substr($str,
$len){
$count
=
0;
for($i=0;
$i<strlen($str);
$i++){
if($count
==
$len)
break;
if(preg_match("/[\x80-\xff]/",
substr($str,
$i,
1)))
++$i;
++$count;
}
return
substr($str,
0,
$i);
}
//統計字元串長度-UTF8
(PHP)
function
utf8_strlen($str)
{
$count
=
0;
for($i
=
0;
$i
<
strlen($str);
$i++){
$value
=
ord($str[$i]);
if($value
>
127)
{
$count++;
if($value
>=
192
&&
$value
<=
223)
$i++;
elseif($value
>=
224
&&
$value
<=
239)
$i
=
$i
+
2;
elseif($value
>=
240
&&
$value
<=
247)
$i
=
$i
+
3;
else
die('Not
a
UTF-8
compatible
string');
}
$count++;
}
return
$count;
}
//截取字元串-UTF8(PHP)
function
utf8_substr($str,$position,$length){
$start_position
=
strlen($str);
$start_byte
=
0;
$end_position
=
strlen($str);
$count
=
0;
for($i
=
0;
$i
<
strlen($str);
$i++){
if($count
>=
$position
&&
$start_position
>
$i){
$start_position
=
$i;
$start_byte
=
$count;
}
if(($count-$start_byte)>=$length)
{
$end_position
=
$i;
break;
}
$value
=
ord($str[$i]);
if($value
>
127){
$count++;
if($value
>=
192
&&
$value
<=
223)
$i++;
elseif($value
>=
224
&&
$value
<=
239)
$i
=
$i
+
2;
elseif($value
>=
240
&&
$value
<=
247)
$i
=
$i
+
3;
else
die('Not
a
UTF-8
compatible
string');
}
$count++;
}
return(substr($str,$start_position,$end_position-$start_position));
}
//判斷是否是有韓文-UTF-8
(JavaScript)
function
checkKoreaChar(str)
{
for(i=0;
i<str.length;
i++)
{
if(((str.charCodeAt(i)
>
0x3130
&&
str.charCodeAt(i)
<
0x318F)
||
(str.charCodeAt(i)
>=
0xAC00
&&
str.charCodeAt(i)
<=
0xD7A3)))
{
return
true;
}
}
return
false;
}
//判斷是否有中文字元-GBK
(JavaScript)
function
check_chinese_char(s){
return
(s.length
!=
s.replace(/[^\x00-\xff]/g,"**").length);
}
❾ php 判斷一個字元是不是中文
第一種 php中文正則匹配 相對簡單第二種 strlen 計算字元串長度 (中文長度算3個) mb_strlen 計算字元串長度 (中文長度算1個) 進行比較中文字元串截取(mb_substr)和獲取中文字元串字數獲取中文長度:mb_strlen()php 判斷一個字元是不是中文
❿ PHP正則表達式驗證是否含有中文
判斷是否有中文。
if (preg_match("/[\x7f-\xff]/", $string)) { echo "true"; }else{ echo "false"; }判斷是否全部是中文
//if (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str)) { //只能在GB2312情況下使用 if (preg_match("/^[\x7f-\xff]+$/", $str)) { //兼容gb2312,utf-8
echo "true";
} else {
echo "false";
}
判斷中文和編碼有關 gbk是雙位元組,utf8是三位元組,可以根據中文的范圍來判斷
編碼范圍1. GBK (GB2312/GB18030)
/x00-/xff GBK雙位元組編碼范圍
/x20-/x7f ASCII
/xa1-/xff 中文
/x80-/xff 中文
2. UTF-8 (Unicode)
/一-/龥 (中文)
/x3130-/x318F (韓文
/xAC00-/xD7A3 (韓文)
/u0800-/一 (日文)
ps: 韓文是大於[/龥]的字元
正則例子:
preg_replace("/([/x80-/xff])/","",$str);
preg_replace("/([一-龥])/","",$str);
希望可以採納,謝謝。