<br>是吗意思

<br>是吗意思,第1张

在HTML标记中,<br>是换行的标记。

Web页面即HTML文件主要由三部分构成:序、头部和主体。序在页面的第一行,头部用来定义整个文档,主体是文档的主要部分。

HTML是标记语言,所以用户可以使用任何编辑文本的编辑器来进行页面文件的编写,如Word 2010,但一定用纯文本格式保存。因为浏览器只识别纯文本格式的文件。

一段HTML由元素和标签构成。元素是要处理的对象,这些元素一般要在浏览器中显示出来。在页面文件中,一个元素可以包含另外的元素,形成网状结构。元素具有不同的属性,例如图像就有大小,对齐方式、边框、超级链接等属性。元素都有相应的标志来进行区分,而文本是HTML文件中最基本的元素,不需要用标志。

标签本身由标签名和属性构成,放在尖括号中。标签总是成对出现的,结束标签是在标签名前加了一个斜杠,两个标签之间就是元素的内容。有一些标签只有起始标志,没有结束标志。

解决php字符串长度不等的方法:首先通过“mb_detect_encoding()”函数查看两个字符串的编码方式;然后查看具体字符长度;最后剔除非中文字符即可。

问题:

如图所示 咋眼看去两个一样的中文字符串“后勤保障部”,但一个长度为21 一个为15。

首先直觉可能会认为是编码方式不一样导致的,

通过mb_detect_encoding()函数查看两个字符串的编码方式 代码如下

1

2

3

4

<?phpheader("Content-Type: text/htmlcharset=utf-8")

 

$data[0]=$str1="后勤保障部‍"$data[1]=$str2="后勤保障部"

var_dump($data)//查看编码方式$encode1 = mb_detect_encoding($str1,  array("ASCII","UTF-8","GB2312","GBK","BIG5"))$encode2 = mb_detect_encoding($str2,  array("ASCII","UTF-8","GB2312","GBK","BIG5"))echo "str1='".$str1."'"." 编码:".$encode1."</br>"echo "str2='".$str2."'"." 编码:".$encode2."</br>"?>

但输出结果都是UTF-8

那么是什么原因呢 ,我们在输出看下具体字符长度

1

2

3

4

<?phpheader("Content-Type: text/htmlcharset=utf-8")

 

$data[0]=$str1="后勤保障部‍"$data[1]=$str2="后勤保障部"

var_dump($data)//查看编码方式$encode1 = mb_detect_encoding($str1,  array("ASCII","UTF-8","GB2312","GBK","BIG5"))$encode2 = mb_detect_encoding($str2,  array("ASCII","UTF-8","GB2312","GBK","BIG5"))//当mb_strlen的内码选择为UTF-8的时候,则会将中文字符当成一个字符//strlen,得到的是字符串所占的字节数echo "str1='".$str1."'".": 字符长度:".mb_strlen($str1).": 字节长度:".strlen($str1)." 编码:".$encode1."</br>"echo "str2='".$str2."'".": 字符长度:".mb_strlen($str2).": 字节长度:".strlen($str2)." 编码:".$encode2."</br>"?>

输出结果如下:

发现字符串str1有7个中文字符,但实际只显示了5个,也就是“后勤保障部”

通过截取str1最后两个字符查看

1

//截取str1后面两个未显示字符$res=mb_substr($str1, 5,2)echo "最后两字符:".$res."</br>"echo mb_strlen($res)

无法echo显示,但确实占有两个字符

如果实际要求这看上去一样的字符串就相等的话,需要进行处理,处理就是剔除非中文字符:

//剔除str1字串中未显示的字符(非中文字符)preg_match_all('/[\x{4e00}-\x{9fff}]+/u', $str1, $matches)$str1 = join('', $matches[0])

最终代码如下

1

2

3

4

5

6

7

8

9

10

11

12

<?phpheader("Content-Type: text/htmlcharset=utf-8")

 

$data[0]=$str1="后勤保障部‍"$data[1]=$str2="后勤保障部"

var_dump($data)//查看编码方式$encode1 = mb_detect_encoding($str1,  array("ASCII","UTF-8","GB2312","GBK","BIG5"))$encode2 = mb_detect_encoding($str2,  array("ASCII","UTF-8","GB2312","GBK","BIG5"))//当mb_strlen的内码选择为UTF-8的时候,则会将中文字符当成一个字符//strlen,得到的是字符串所占的字节数echo "str1='".$str1."'".": 字符长度:".mb_strlen($str1).": 字节长度:".strlen($str1)." 编码:".$encode1."</br>"echo "str2='".$str2."'".": 字符长度:".mb_strlen($str2).": 字节长度:".strlen($str2)." 编码:".$encode2."</br>"//截取str1后面两个未显示字符echo "</br>------------------截取str1后面两个未显示字符---------------------</br>"$res=mb_substr($str1, 5,2)echo "str1最后两字符: ".$res."</br>"echo "str1长度: ".mb_strlen($res)."</br>"//比较echo "</br>--------------------------相等比较----------------------------------</br>"echo "str1 与 str2比较: "echo strcomp($str1,$str2)."</br>"echo "str2 与 str2比较: "echo strcomp($str2,$str2)."</br>"//剔除str1字串中非中文preg_match_all('/[\x{4e00}-\x{9fff}]+/u', $str1, $matches)$str1 = join('', $matches[0])echo "</br>---------------------剔除str1字串中非中文后----------------------</br>"echo "str1='".$str1."'".": 字符长度:".mb_strlen($str1).": 字节长度:".strlen($str1)." 编码:".$encode1."</br>"echo "str1 与 str2比较: "echo strcomp($str1,$str2)."</br>"function strcomp($str1,$str2){

  if($str1 == $str2){

    return "相等"

  }else{

    return "不等"

  }

}

 

?>

运行结果

注:

将21字节的str1复制到phpmyadmin的sql输入框,显示如下

嗯 就是多的那两个字符

更多相关知识,请访问PHP中文网!

以上就是解决php字符串一样但长度不等的问题的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

专题推荐:php

上一篇:评价一台计算机的性能主要通过哪几个方面下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

欢迎分享,转载请注明来源:优选云

原文地址:https://54852.com/hy/1081022.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-23
下一篇2023-08-23

随机推荐

  • 几款万人好评的亮肤淡斑精华|原来这么好用,让你的肌肤紧致嫩白

    在现代都市中,我们的肌肤经历的压力是非常大的,灰尘、紫外线、工作压力等等都可能影响我们的肌肤健康。脸上的雀斑、斑点、暗黄等问题都是我们经常遇到的。然而,我们不需要太担心,因为市面上有很多优秀的亮肤淡斑精华产品,它们能够有效改善我们的肤色,给

    2023-12-14
    106700
  • 韩雅红参凝时系列紧致效果如何

    可以,补出健康好肤色,用起来十分的舒适,适合任何肤质使用,上脸也不会感到油腻,保湿滋养肌肤,同时有很好的抗初老功效,提高肌肤免疫力,适合所有肤质使用,采用温和配方。 该款保质期(年)3,是否为特殊用途化妆品否,产品产地1,功效补水,适合肤质

    2023-12-14
    43200
  • 欧莱雅青春密码活颜精华肌底液怎么用

    欧莱雅青春密码活颜精华肌底液是用在洗脸后化妆水之后的,就像“开胃菜”一样,能打开肌肤的胃口,增加肌肤的吸收度,让后续使用的护肤品吸收效果更好。同时配合以软化角质、滋润角质的成分,令角质层更容易吸收后续的保养成分。扩展资料:欧莱雅青春密码活颜

    2023-12-14
    21400
  • nest什么意思英语,nest什么意思中文

    1nest英[nest]美[nest]n巢; 窝; 鸟巢; 巢穴; 藏匿处; 秘密窝点; v筑巢; 巢居; 嵌套(信息);[例句]The cuckoo lays its eggs in other birds nests杜鹃在其他鸟的巢中产

    2023-12-14
    28500
  • 用了含铅汞的化妆品会怎么样的后果

    会导致色素脱失,皮肤刺激,造成的皮肤损伤,失眠乏力,头疼等症状。一、化妆品中如果含有铅和汞是会对人体健康产生危害的,而且不止是肾和肝脏。铅会对神经系统、消化系统、骨骼造血功能造成危害;含有汞化合物的物体会对人体骨骼、肾、肝、脑等造成伤害。二

    2023-12-14
    21800
  • 美人心计讲的是什么啊

    ●潜伏代国西汉初年,幼时的云汐和慎儿因为一场变故成了孤儿,两个人成为最好的朋友,然而却不得不天各一方。长大之后,云汐误打误撞被选入宫为奴成为家人子,而慎儿也因缘际会地与云汐相遇,冒名顶替来到汉宫。云汐深知一入宫门深似海的道理,处处小心谨

    2023-12-14
    27000
  • mistine羽翼粉饼和陶瓷粉饼区别 mistine羽翼粉饼的使用方法

    在我们平时的日常生活中很多人都非常喜欢泰国的彩妆产品,泰国有很多非常平价又好用的化妆品,mistine就是泰国一个非常受欢迎的彩妆品牌,那么mistine羽翼粉饼和陶瓷粉饼区别,mistine羽翼粉饼的使用方法。mistine羽翼粉饼和

    2023-12-14
    20600
  • 韩后是哪里的品牌 韩后属于什么档次的品牌

    韩后这个牌子大家应该是非常熟悉的,因为它有着较久的一个发展历史,而且还有很多位明星代言,品牌知名度还是比较高的。那么韩后是哪里的品牌呢?韩后属于什么档次呢?韩后是哪里的品牌韩后是国产的一个护肤品牌,隶属于韩后化妆品股份有限公司。韩后

    2023-12-13
    19700
  • 兰姿妍和董欣化妆品哪个好用

    董欣好。1、成分好:董欣化妆品成分主要是天然茶,萃取上乘的茶,提取珍贵的护肤精华,融合古方制作而成。2、价格好:董欣化妆品为300元一瓶,而兰资研的价格为500元一瓶,所以董欣的更好,更适合大众。我也想购买她的东西,但是后来在网上仔细调查了

    2023-12-13
    28100

发表评论

登录后才能评论
保存