php判断中英文,PHP判断语句

本文目录一览:

PHP指定截取字符串中的中英文或数字字符的实例分享

我们在开发过程中,经常会碰到截取中文英文数字等的问题,大家知道中文所占的字符和英文数字是不同的;然后我们就会在项目的common里写一些日常的函数包含时间计算转换和中英文字符截取的函数;比如截取中英文的函数没个几行代码恐怕拿不下来的吧,现在就告诉大家一个简单的(自己本地运行过的),如有问题,请大家多多指教

$c

=

‘ddaabbccaa’;

$d

=

‘地球需要我们每个人的爱护’;

$frist1

=

mb_substr(

$c,

0,

1

,”UTF-8″);

//

d

$delete_last1

=

mb_substr($d,

-1,1,”UTF-8″);

//

echo

$frist1.’+++’.$delete_last1.’br/’;

//

d+++护

$frist2

=

mb_substr(

$d,

0,

1

,”UTF-8″);

//

$delete_last2

=

mb_substr($d,

-1,1,”UTF-8″);

//

echo

$frist2.’+++’.$delete_last2.’br/’;

//

地+++护

$e

=

’11aa22cc33′;

$f

=

‘aa地球需要我们每个人的爱护’;

$g

=

‘地球需要我们每个人的爱护gg’;

$h

=

‘地球需要我们每个人的爱护’;

$first3

=

mb_substr(

$e,

0,

1

,”UTF-8″);

//

1

$last3

=

mb_substr(

$f,

0,

1

,”UTF-8″);

//

a

$delete_last3

=

mb_substr($f,

-1,1,”UTF-8″);

//

$delete_last4

=

mb_substr($g,

-1,1,”UTF-8″);

//

g

$frist4

=

mb_substr(

$g,

0,

1

,”UTF-8″);

//

$delete_last5

=

mb_substr($h,

-1,1,”UTF-8″);

//

echo

$first3.’+++’.$last3.’—‘.$delete_last3.’***’.$delete_last4.”.$frist4.’br/’;

//

1+++a—护***g地

echo

$last3.’…’.$delete_last3.’br/’;

//

a…护

echo

$frist4.’…’.$delete_last5.’br/’;

//

地…护

//

这样不管字符串里是中英文数字等都是可以的无需判断,如:

”地…护“

或者

“地…”

或者

“…护”

PS:过滤字符串中空格的方法

去除字符串首尾中英文空格的方法:

function

mbTrim($str)

{

return

mb_ereg_replace(‘(^( |

)+|( |

)+$)’,

”,

$str);

}

下面的正则验证时过滤掉用户输入的连续空格,包括全角空格和半角空格

$user

=

mb_ereg_replace(‘^( |

)+’,

”,

$user);

$user

=

mb_ereg_replace(‘( |

)+$’,

”,

$user);

$age

=

mb_ereg_replace(‘^( |

)+’,

”,

$age);

$age

=

mb_ereg_replace(‘( |

)+$’,

”,

$age);

$method

=

mb_ereg_replace(‘^( |

)+’,

”,

$method);

$method

=

mb_ereg_replace(‘( |

)+$’,

”,

$method);

$address

=

mb_ereg_replace(‘^( |

)+’,

”,

$address);

$address

=

mb_ereg_replace(‘( |

)+$’,

”,

$address);

我用php写的,我想判断表单提交的内容是中文还是英文,要怎么写呢?

mb_strlen 无论中英文都算1

strlen 中文算2,英文算1,

接收内容之后mb_strlen($str) == strlen($str) 就是英文

mb_strlen($str) == 2*strlen($str),是中文

否则是混排。

有点投机的做法

php分割中英文字符串的几种方

对一段文字按照字数进行分割,因为文字中可能是中英文混合的,而php函数strlen只能计算出字串的字节数,于是自己实现了几个函数,分享下。

例1,计算字符总长度。

01    ?php    

02    function ccStrLen($str) #计算中英文混合a href=”/”target=”_blank” class=”infotextkey”字符串/a的长度    

03    {    

04    $ccLen=0;    

05    $ascLen=strlen($str);    

06    $ind=0;    

07    $hasCC=ereg(”[xA1-xFE]“,$str); #判断是否有汉字    

08    $hasAsc=ereg(”[x01-xA0]“,$str); #判断是否有ASCII字符    

09    if($hasCC  !$hasAsc) #只有汉字的情况    

10    return strlen($str)/2;    

11    if(!$hasCC  $hasAsc) #只有Ascii字符的情况    

12    return strlen($str);    

13    for($ind=0;$ind$ascLen;$ind++)    

14    {    

15    if(ord(substr($str,$ind,1))0xa0)    

16    {    

17    $ccLen++;    

18    $ind++;    

19    }    

20    else    

21    {    

22    $ccLen++;    

23    }    

24    }    

25    return $ccLen;    

26    }    

27    ?    

例2,从左侧截取字符串。

01    ?php    

02    function ccStrLeft($str,$len) #从左边截取中英文混合字符串    

03    {    

04    $ascLen=strlen($str); if($ascLen=$len) return $str;    

05    $hasCC=ereg(”[xA1-xFE]“,$str); #同上    

06    $hasAsc=ereg(”[x01-xA0]“,$str);    

07    if(!$hasCC) return substr($str,0,$len);    

08    if(!$hasAsc)    

09    if($len  0×01) #如果长度是奇数    

10    return substr($str,0,$len+$len-2);    

11    else    

12    return substr($str,0,$len+$len);    

13    $cind=0;$flag=0;$reallen=0;//实际取字节长    

14    while($cind$ascLen  $reallen$len)    

15    { //by     

16    if(ord(substr($str,$cind,1))0xA1){ //如果该字节为英文 则加一    

17    $cind++;    

18    }else{//否则 加2个字节    

19    $cind+=2;    

20    }    

21    $reallen++;    

22    }    

23    return substr($str,0,$cind);    

24    }    

25    ?    

例3,把给定文字,按切割数量存入数组(适合短篇文字,长文章可没分隔一部分就直接处理一次)

view sourceprint?

01    ?php    

02    function SplitContent($content,$smslen){    

03    $str_tmp=$content;    

04    $arr_cont=array();    

05    $len_tmp=0;    

06    $i=0;//分割绝对位置    

07    while (strlen($str_tmp)0){    

08    $str_tmp=ccStrLeft($str_tmp,$smslen);    

09    array_push($arr_cont,$str_tmp);    

10    $i+=strlen($str_tmp);    

11    $str_tmp=substr($content,$i,strlen($content));    

12    }    

13    return $arr_cont;    

14    } //by     

15    ?    

测试:

1    ?php    

2    $str=’a计算中英文混合1234字符串的长度abcd’;    

3    echo $str.’的长度为:’.ccStrLen($str);    

4    echo ‘br’;    

5    $smslen=3;//截取长度    

6    print_r(SplitContent($str,$smslen));    

7    ?

php中是如何区分中英文及数字的,想把一字符串中中文、英文和数字拆分开,该如何实现

目前有两种方式:

php词典:这个可以参照dede的词典。

插件:这个可以参考sphinx

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
IOTN的头像IOTN
上一篇 2024-10-04 00:22
下一篇 2024-10-04 00:22

相关推荐

  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • Python3支持多行语句

    Python3是一种高级编程语言,开发人员可以轻松地使用该语言编写简单到复杂的代码。其中Python3支持多行语句,方便开发人员编写复杂的代码,提高代码的可读性和可维护性。 一、使…

    编程 2025-04-29
  • Python for循环语句打印九九乘法表

    本篇文章将详细介绍如何使用Python的for循环语句打印九九乘法表。打印九九乘法表是我们初学Python时经常练习的一项基础操作,也是编写Python程序的基本能力之一。 1、基…

    编程 2025-04-29
  • Python中while语句和for语句的区别

    while语句和for语句是Python中两种常见的循环语句,它们都可以用于重复执行一段代码。然而,它们的语法和适用场景有所不同。本文将从多个方面详细阐述Python中while语…

    编程 2025-04-29
  • PHP怎么接币

    想要在自己的网站或应用中接受比特币等加密货币的支付,就需要对该加密货币拥有一定的了解,并使用对应的API进行开发。本文将从多个方面详细阐述如何使用PHP接受加密货币的支付。 一、环…

    编程 2025-04-29
  • Python中自定义函数必须有return语句

    自定义函数是Python中最常见、最基本也是最重要的语句之一。在Python中,自定义函数必须有明确的返回值,即必须要有return语句。本篇文章将从以下几个方面对此进行详细阐述。…

    编程 2025-04-29
  • Python中升序排列的if语句

    本文将为大家介绍Python中升序排列的if语句。首先,我们来看一下如何实现。 if a > b: a, b = b, a if b > c: b, c = c, b …

    编程 2025-04-29
  • Python输出语句用法介绍

    Python作为一种高级编程语言,为编程带来了极大的便利和快捷。而输出语句则是Python编程中不可缺少的一部分,它能够让我们看到程序运行的结果、判断程序的正确性和优化程序等。本文…

    编程 2025-04-28
  • 使用PHP foreach遍历有相同属性的值

    本篇文章将介绍如何使用PHP foreach遍历具有相同属性的值,并给出相应的代码示例。 一、基础概念 在讲解如何使用PHP foreach遍历有相同属性的值之前,我们需要先了解几…

    编程 2025-04-28
  • Python语句大全

    本文将详细阐述Python语句大全,并给出代码实例。 一、基本语句 Python基本语句包括赋值语句、条件语句、循环语句等,其中最基础的是赋值语句。如下: a = 1 b = 2 …

    编程 2025-04-28

发表回复

登录后才能评论