<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
    30000
  • 佰草集太极啵啵精华水怎么样佰草集太极啵啵精华水好用吗

    佰草集太极啵啵精华水主打深层修护补水清爽保湿,那么佰草集太极啵啵精华水怎么样?佰草集太极啵啵精华水好用吗?下面我将为你带来佰草集太极啵啵精华水最详细的介绍和分析,使你拥有愉悦的购物体验,继续关注此站点,并有许多福利和惊喜等待着你~

    2023-12-14
    23400
  • 雅诗兰黛精华和珂莉安哪个好

    雅诗兰黛的好。雅诗兰黛精华液对肌肤有一定的滋润功效,它里面含有丰富的水分,可以让肌肤变得清透润滑,雅诗兰黛精华液质地虽然比水要黏稠一些,但经过涂抹后,一点也不油腻,它的精华成分还能很快被肌肤吸收。珂莉安主要是一个针对于过敏性肌肤使用的护肤品

    2023-12-14
    31200
  • 香奈儿一共有几种粉饼分别是什么哪个比较好用

    分类:生活 >> 美容塑身问题描述:香奈儿的粉一共有几种啊分别叫什么到底也要五六百了不知道卖他家哪款好!用过的人觉得哪个比较好 解析:CHANEL净白粉饼 Chanel 双效完美粉饼(Double Pe

    2023-12-14
    28800
  • 屈臣氏内一般都有哪些牌子

    屈臣氏内一般有的牌子是欧莱雅,玉兰油,妮维雅,美宝莲,薇姿,美即,屈臣氏,飘柔,力士等等,屈臣氏集团(香港)有限公司是长江和记有限公司旗下屈臣氏集团以保健及美容为主的一个品牌。 屈臣氏是长江和记有限公司旗下的国际零售及食品制造机构,业务遍布

    2023-12-14
    21000
  • 俪采妍化妆品怎么样有激素吗

    俪采妍化妆品好,没有激素。俪采妍化妆品的质量好,使用的产品原料安全无添加。俪采妍化妆品是一款专业抗衰科技含量很高的钻石级细胞营养液。市面上的护肤品上几万种,消费者都不知道到底哪款适合自己也不知道该如何选择适合自己的产品,俪采妍富勒烯能量美肌

    2023-12-14
    20300
  • 素野护肤品怎么样

    素野护肤品怎么样?素野护肤品是国产的,产地就在上海,素野护肤品的主打功能就是修复和滋养。素野护肤品,坚持回归绿色,崇尚大自然植物能量与尖端科技的完美结合的品牌理念,坚持高端品质提供优质产品与卓越功效的同时,用心雕琢使用肤感的提升

    2023-12-13
    19500
  • 化妆品排行榜前十名是

    品牌列表:雅诗兰黛化妆品,迪奥化妆品。雅诗兰黛是全球最大的护肤、化妆品和香水公司之一,倩碧、阿拉米斯、芭比布朗等都是其旗下品牌。一开始是以护肤霜和抗衰老护肤品出名,但是它的化妆品也很受欢迎,有底妆。十大大牌护肤品动词(verb的缩写)香奈儿

    2023-12-13
    26100
  • 化妆品贴牌需要多少量

    成品OEM订单起订量的要求一般是按照瓶、个、支、片的单位来进行计算,比如面膜OEM起订量一般在20000-30000片左右,不同的化妆品厂家在化妆品OEM起订量上会有一定的出入。受化妆品OEM代加工产业链的影响,化妆品厂家要生产每一个订单的

    2023-12-13
    18700

发表评论

登录后才能评论
保存