您现在的位置: 365建站网 > 365文章 > php判断字符串中是否包含中文汉字和获得字符串中的汉字

php判断字符串中是否包含中文汉字和获得字符串中的汉字

文章来源:365jz.com     点击数:1619    更新时间:2018-01-12 11:40   参与评论
一,判断全是中文
 
$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取得汉字(中文):

function getChinese($str,$charset='utf8'){ 
 
  if($charset=='gb2312'){ 
    if(!preg_match_all("/^[".chr(0xa1)."-".chr(0xff)."]+/",$str,$match)){ 
      return false; 
    } 
    return implode('',$match[0]); 
  } 
  // 
  if($charset=='utf8'){ 
    if(!preg_match_all("/[\x{4e00}-\x{9fa5}]+/u",$str,$match)){ 
      return false; 
    } 
    return implode('',$match[0]); 
  } 
  return false; 
 
}  


说明:PHP利用正则表达式如何匹配出一段字符串中的中文,对于这个问题,网上也有很多代码,但是大部分都存在纰漏,所以下面为大家提供真正能够匹配出中文的代码。分两种编码形式:
1)utf-8的编码格式,匹配中文代码如下:

<?php
    $str = "utf-8下匹配出中文字符串";
    $preg = "/[\x{4e00}-\x{9fa5}]+/u";
    if(preg_match_all($preg,$str,$matches)){
        print_r($matches);
    }
?>

2)gb2312的编码格式,匹配中文字符串代码如下:

<?php
    $str = "gb2312下匹配出中文字符串";
    $preg = "/([".chr(0xb0)."-".chr(0xf7)."][".chr(0xa1)."-".chr(0xfe)."])+/i";
    if(preg_match($preg,$str,$matches)){
        print_r($matches);
    }
?>


如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛

发表评论 (1619人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称:
最新评论
------分隔线----------------------------

快速入口

· 365软件
· 杰创官网
· 建站工具
· 网站大全

其它栏目

· 建站教程
· 365学习

业务咨询

· 技术支持
· 服务时间:9:00-18:00
365建站网二维码

Powered by 365建站网 RSS地图 HTML地图

copyright © 2013-2024 版权所有 鄂ICP备17013400号