php判斷是中文
⑴ php判斷IP是中國IP還是外國IP
//返回ip所在的區域外國ip精確到國名
functiongetcposition($ip){
try{
$res1=file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=$ip");
$res1=json_decode($res1,true);
if($res1["code"]==0){
return$res1['data']["country"].$res1['data']["region"].$res1['data']["city"]."_".$res1['data']["isp"];
}else{
return"未能獲取";
}
}catch(Exception$e){
return"未能獲取";
}
}
⑵ php判斷字元串是否有繁體中文
可以借用 iconv 函數,通過對給定字元串分別轉換成簡體代碼集(GB2312)和 GBK 字元集,再進行兩者的比較,如果一致則可以判斷為簡體,反之是繁體中文。
提供網上示例代碼供參考:
$str="這是繁體中文";
$strGbk=iconv("UTF-8","GBK//IGNORE",$str);
$strGb2312=iconv("UTF-8","GB2312//IGNORE",$str);
if($strGbk==$strGb2312){
echo'簡體';
}else{
echo'繁體';
}
需要提示的:
某些字,中文簡體和繁體是一樣的字(但意思不一樣),比如:繁體的乾(gan)凈的「乾」和乾(qian)坤的「乾」字,都是「乾」字,但它在第一個詞語里是繁體字,在第二個詞語里是簡體字。
⑶ PHP的正則表達式中使用中文(並匹配中文)的問題,原串為UTF8
<?php
$str = "中國勢力是(煙消雲散、再轉在、匣介)中國、類別置頂帖(來哦見好就收)、炒肉可示、需要城";
$preg2 = "/中國/sim" ;
preg_match_all($preg2, $str, $strResult, PREG_PATTERN_ORDER);
print_r($strResult);
?>
我的PHP文件是UTF-8編碼,不知道你的$str是從哪裡得到的呢?像上面一樣,我直接給$str賦值,這樣使用 /中國/sim 這個表達式沒有任何問題,會不會是你$str字元串的編碼與頁面編碼不一致呢?
⑷ php怎麼判斷輸入框不能提交中文
1、首先strlen返回的字元長度和mb_strlen以當前編碼計算的長度一致,可以判斷是純英文字元串。
2、其次strlen返回的字元長度和mb_strlen以當前編碼計算的長度不一致,且strlen返回值同mb_strlen的返回值求余後得0可以判斷為是全漢字的字元串。
3、最後strlen返回的字元長度和mb_strlen以當前編碼計算的長度不一致,且strlen返回值同mb_strlen的返回值求余後不為0,可以判斷為是英漢混合的字元串。
⑸ php如何判斷一個字元是中文還是英文
functionischinese($s){
$allen=preg_match("/^[^/x80-/xff]+$/",$s);//判斷是否是英文
$allcn=preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$s);//判斷是否是中文
if($allen){
return'英文';
}else{
if($allcn){
return'中文';
}else{
return'中英混合';
}
}
}