php判断是否有韩文(上海地铁包被车门夹住)

  • 1、php有没有检测输入的字符串是什么语言种类的方法
  • 2、用PHP正则判断 只能输入 中文、韩文、日文、英文(大小写) 除外的一律禁止的。 有谁可以么?
  • 3、用PHP正则判断 只能输入 中文、韩文、日文、因为(大小写) 除外的一律禁止的。 有谁可以么?
  • 4、php 中文和编码判断代码
  • 5、php中如何判断中英文字符

那个你可以粗略根据编码格式来:

?php

$lang = substr($_SERVER[‘HTTP_ACCEPT_LANGUAGE’], 0, 4); //只取前4位,这样只判断最优先的语言。如果取前5位,可能出现en,zh的情况,影响判断。

if (preg_match(“/zh-c/i”, $lang))

echo “简体中文”;

else if (preg_match(“/zh/i”, $lang))

echo “繁体中文”;

else if (preg_match(“/en/i”, $lang))

echo “English”;

else if (preg_match(“/fr/i”, $lang))

echo “French”;

else if (preg_match(“/de/i”, $lang))

echo “German”;

else if (preg_match(“/jp/i”, $lang))

echo “Japanese”;

else if (preg_match(“/ko/i”, $lang))

echo “Korean”;

else if (preg_match(“/es/i”, $lang))

echo “Spanish”;

else if (preg_match(“/sv/i”, $lang))

echo “Swedish”;

else echo $_SERVER[“HTTP_ACCEPT_LANGUAGE”];

?

可以用两个表达式来实现

首先匹配到特殊字符 如 ~!@#$%^*()则返回失败,

如果匹配不到特殊字符 然后再排除数字 用 ‘/([^\d]+)/’匹配

如果再成功 才算成功 不然你说的那么多种字符UTF-8编码会很难写 而且效率也很差

/^[\x{4e00}-\x{9fa5}\x{3130}-\x{318F}\x{0800}-\x{4e00}a-zA-Z]+$/u

别忘了最后那个修正符“ u ”,少了它可不行。

再补充下,要使用这个正则,你的网页编码必须是UTF-8,如果是GB2312,那不要想了。

编码范围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;

$istrlen($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;

$istrlen($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;

istr.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判断中英文的依据是字符的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

原创文章,作者:RR8MO,如若转载,请注明出处:https://www.506064.com/n/126481.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
RR8MORR8MO
上一篇 2024-10-03 23:08
下一篇 2024-10-03 23:08

相关推荐

  • php文件判断是否存在方法详解

    一、php判断文件是否存在 在进行文件操作的时候经常需要判断某个文件是否存在,这里我们介绍几种方法。 方法一:使用file_exists函数 $file = ‘test.txt’;…

    编程 2025-02-05
  • Python羊车门问题详解

    一、问题描述 羊车门问题(Monty Hall problem)是一个以概率为基础的统计学问题。问题的描述如下: 假设你在选奖品,有三扇门,在其中一扇门后面有一辆汽车,而在另外两扇…

    编程 2025-02-01
  • php判断是否有值,php判断是否有值函数

    本文目录一览: 1、PHP 怎么才能判断某常量是否有值(被赋值了)??或者怎样才能捕获某常量是未定义的?谢谢。 2、php 如何判断$_SESSION 是否有值 3、php判断一个…

    编程 2025-01-16
  • php属相对应年份博客,给定一个年份,判断是否为闰年php

    本文目录一览: 1、PHP输入年份查询属相的代码。 2、html输入年份求属相,在窗体应用程序中怎么输出年份然后显示生肖,求代 3、如何用php根据出生日期计算年龄和星座 PHP输…

    编程 2025-01-14
  • java判断是否为空,java判断是否为空或是null的方法

    本文目录一览: 1、java前台等于空的判断 2、java怎么判断一个变量的值为空 3、java 判断是否为空 4、java怎么判断int是否为空? 5、java判断字符串是否为空…

    编程 2025-01-11
  • 关于php判断是否int的信息

    本文目录一览: 1、php怎么判断数据类型 2、php判断是否为数字 3、使用php is _int() 判断是否为整数的问题 4、php如何判断一个数是不是数值型 5、php如何…

    编程 2025-01-09
  • Java工程师使用map判断是否为空

    一、Map介绍 Map是Java中一个重要的接口,其实现类有HashMap、TreeMap、ConcurrentHashMap等。Map是一种键值对的容器类,它可以存储不同类型的对…

    编程 2025-01-05
  • 输入一个数判断是否为素数

    素数指只能被1和本身整除的数。本文将介绍如何编写程序,输入一个数,判断它是否为素数。针对不同语言,我们将分别给出代码示例。 一、python输入一个数判断是否为素数 def is_…

    编程 2025-01-04
  • php中判断类型,php判断是否是字符串

    本文目录一览: 1、php数据类型判断函数有哪些 2、php怎么判断数据类型 3、php中怎么判断格式的文件类型 4、判断 php 对象类型 是否有方法 5、php 判断一个值是不…

    编程 2025-01-02
  • 正则表达式判断是否是数字

    正则表达式是一种强大的工具,可以用来匹配、验证和替换文本。在Web开发、文本处理和数据分析等领域,正则表达式经常被使用。此篇文章将从多个方面详细阐述如何使用正则表达式来判断是否是数…

    编程 2024-12-30

发表回复

登录后才能评论