完美字符编码判断php代码(完美字符编码判断php代码是否正确)

本文目录一览:

php 如何判断字符是否是utf8编码

严格来说,不好判断,但如下方法或许能给你应急处理。function is_utf8_encode($str, $flag=false){static $charset = null;if($charset == null){ //gbk中的汉字,但是满足utf-8的编码规范,对于这些汉字当做gbk字符处理$charstr = ‘陇搂篓掳卤路脳脿谩猫茅锚矛铆貌贸梅霉煤眉腻脓臎墨艅艌艒奴菐菒菕菙菛菢菤菧蓱伞艺藟藠藡藱螒螔螕螖螘螙螚螛螜螝蚂螠螡萤螣螤巍危韦违桅围唯惟伪尾纬未蔚味畏胃喂魏位渭谓尉慰蟺蚁蟽蟿蠀蠁蠂蠄蝇衼袗袘袙袚袛袝衮袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟褢’;$charset = str_split($charstr, 2);$charset = array_flip($charset);}$pflag = true;$qflag = false;$len = strlen($str);

php怎样判断字符串是什么编码

php判断字符编码的二个方法:

一个是用php自带的函数mb_detect_encoding,一个是个人写函数来处理。

方法1,使用mb_detect_encoding函数。

?

1

2

3

4

?php

$str=”a href=”” target=”_blank” class=”infotextkey”脚本/a”;

echo mb_detect_encoding($str);

?

方法2,自定义函数。

?

1

2

3

4

5

6

7

8

9

10

11

?php

function chkbm($string){

$bm = array(‘ASCII’, ‘GBK’, ‘UTF-8′);

foreach($bm as $c){

if( $string === a href=”” target=”_blank” class=”infotextkey”iconv/a(‘UTF-8′, $c, iconv($c, ‘UTF-8′, $string))){//转换编码后是不是相等

return $c;

}

}

return null;

}

?

PHP完美判断字符串是否为utf

完美判断函数:

function is_utf8($gonten){if (preg_match(/^([.chr(228).-.chr(233).]{1}[.chr(128).-.chr(191).]{1}[.chr(128).-.chr(191).]{1}){1}/,$word) == true || preg_match(/([.chr(228).-.chr(233).]{1}[.chr(128).-.chr(191).]{1}[.chr(128).-.chr(191).]{1}){1}$/,$word) == true || preg_match(/([.chr(228).-.chr(233).]{1}[.chr(128).-.chr(191).]{1}[.chr(128).-.chr(191).]{1}){2,}/,$word) == true){return true;}else{return false;}}使用方法 is_utf8($gonten)就可以判断字符串$gonten是否为utf-8编码了。

网上流传着这样一个判断函数,其实这函数判断是不完整的,函数如下

function is_utf8($string) {

return preg_match(‘%^(?:

[\x09\x0A\x0D\x20-\x7E] # ASCII

| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte

| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs

| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte

| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates

| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3

| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15

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;

$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 判断一个字符串里是否有某个字符代码怎么写?

先看下我们的代码,如图,定义了一个字符串,然后调用php的strpos方法。

result1 = strpos(str, ‘sougou’); // 查找字符sougou在字符串出现的位置。

result2 = strpos(str, ‘sohu’); // 查找字符sohu在字符串出现的位置。

如果查找的字符不在字符串里,即字符串不包含查找的字符,strpos方法就会返回 false.

02

然后是一些输出代码,输出显示我们的结果

03

运行代码,看下我们的结果,如图,字符串里有包含sougou和sohu啊,为什么结果都显示不包含的?

04

原来字符串的开始位置是从0开始的,而不是从1开始。0也相当于是false了,我们修改下代码,判断代码里,加多一个等号(=),即是真正的false才是没找到字符串。

05

再次运行代码,结果如图,sougou字符是有查找到了,sohu还是没有。

06

原来strpos方法是区分大小写的,字符串里的sohu是大写的S,所以结果是没有找到这个sohu的字符串。怎么修改?我们可以用另一个方法stripos,这个方法是不区分大小的。

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

(0)
YCGD6YCGD6
上一篇 2024-10-03
下一篇 2024-10-03

相关推荐

  • 下安装mysql设置数据库编码(怎么设置数据库编码)

    1、如何改变mysql数据库的编码方式 2、mysql设置编码utf8 3、如何设置mysql数据库为utf-8编码 4、如何更改MySQL数据库编码为UTF-8或者GB2312?…

  • PHP中常用的键名判断函数

    一、isset函数 isset()函数在判断某个变量是否存在时十分常用。它可以判断变量是否被声明,并且不为null。如果变量不存在或者为null,则返回false。否则返回true…

    编程 2024-10-04
  • ug12工程图如何旋转,ug12视图旋转

    本文目录一览: 1、ug制图怎么在图框里旋转图 2、UG中如何旋转剖视图 3、ug制图怎么旋转视图位置 4、UG12.0在草图环境下如何围绕圆复制粘贴旋转120度 5、ug怎么旋转…

    编程 2024-10-04
  • 优化网站字体体验的Python技巧

    一、选择合适的字体 选择合适的字体是优化网站字体体验的重要一步,因为字体影响着网站整体的视觉感受和排版布局。Python中可以通过自定义字体或者使用第三方字体库来实现网站字体的优化…

    编程 2024-10-04
  • solidworks修改焊件清单属性中的长度,solidworks焊件切割清单长度

    本文目录一览: 1、solidworks中,焊件环境下,自己画的板件,每次切割清单里,要手动添加属性名称:长度 2、solidworks怎么修改零件尺寸 3、solidworks焊…

    编程 2024-10-12
  • 从多个方面详解object转list

    一、对象的转换 在Python中,我们可以使用list()函数将一个对象转换为列表。这个方法可以被广泛应用于各种场景,例如,从数据库中读取数据时,可以将查询结果转换为列表对象。同时…

    编程 2024-10-03
  • HTML Table属性综述

    HTML表格是一种展示数据的常用方式。表格中的信息可以通过调整单元格大小,添加颜色和样式等方式进行美化,并且可以通过使用HTML属性来操纵表格行为和外观。在本文中,我们将探讨HTM…

    编程 2024-10-04
  • 关于为什么mysql没有exe文件的信息

    本文目录一览: 1、win7安装mysql怎么没有mysqld-nt.exe 2、下了mysql5.6为什么找不到exe文件 在哪个文件夹下面安装exe文件阿 3、我安装的mysq…

    编程 2024-10-03
  • python之父退位后的简单介绍

    本文目录一览: 1、关于Python之父退休后觉得太无聊加入微软一事,你怎么看? 2、Python之父退休失败,正式加入微软,他会担任哪项职务呢? 3、Python之父退休无聊加入…

    编程 2024-10-03
  • cljs工具(clicjs)

    本文目录一览: 1、手机密码设什么比较好记 2、网上下了一段js的代码,准备用在asp.net里面,然后把js文件放在js文件夹下面,但是不能显示 3、如何建一个类似于这样的网站h…

    编程 2024-10-03

发表回复

登录后才能评论