首页  >  文章  >  后端开发  >  php闯关之字符串与quoted-printable字符相互转换

php闯关之字符串与quoted-printable字符相互转换

醉折花枝作酒筹
醉折花枝作酒筹原创
2021-08-04 11:49:102284浏览

上一篇文章中我们了解了去除右侧字符的方法,有需要的请看《php字符串闯关之去除右侧字符》。这次我们向大家介绍字符串与quoted-printable字符相互转换的方法,有需要的可以参考参考。

在开始本篇文章学习之前,我们先来看一下什么叫做quoted-printable。

Quoted-printable可译为“可打印字符引用编码”、“使用可打印字符的编码”,我们收邮件,查看信件原始信息,经常会看到这种类型的编码!

它是多用途Internet邮件扩展(Mime)的一个实现。Mime是一种Internet标准,它扩展了电子邮件标准,并致力于支持各种格式的电子邮件,如非ASCII字符、二进制格式附件等。目前,许多HTTP协议使用mime框架!Quoted printable是指使用一些常见的可打印字符来表示一个字节(8位)中的所有不可打印字符!

对Quoted-printable有一个了解之后,我们就来开始我们的正题吧。

首先我们需要将字符串转换成Quoted-printable,这样才能将Quoted-printable字符串转换成普通字符。

我们来看一个小例子。

<?php 
$str = quoted_printable_encode("Hello
Aworld.");
echo($str); 
?>

这个的结果就是

Z`ED`LW8_]VG}088O}C_D9T.png

我们看这个结果是不是有点奇怪,这个“=0A”是怎么出来的,让我们看看代码,我们在hello这个单词后面使用了键盘上的换行键,虽然这在普通html或是php中是没有问题的,并没有发生折行。但是在这个函数中,不可以,它会将这个回车键解析出来。

了解这些之后,我们去具体介绍一下这个函数吧。

quoted_printable_encode() 函数把 8 位字符串转换为 quoted-printable 字符串。

其实它是语法很简单,就是

quoted_printable_encode(string)

但是我们使用这个函数的时候需要注意:

经过 quoted-printable编码后的数据与通过邮件传输进行修改的不一样。一个完全 US-ASCII 的文本可进行 quoted-printable 编码,用来确保通过文字翻译或线包网关进行消息传递时数据的完整性。

接下来我们就将quoted-printable编码的数据还原吧。

我们就将上面这个例子的数据还原吧。

<?php 
$str = quoted_printable_decode("Hello=0AAworld.");
echo($str); 
?>

当这个例子在浏览器输出时

S3K$O7}$IV_J%[0(67$M$1F.png

当这个例子在html输出时

6`RR{(2ON573C{%LC1PGMWC.png

这样一对比,是不是就能看出区别啦,这个函数解码后的代码在浏览器上是不显示“=0A”解码结果的,但是在html中是会有具体效果的。

就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程

以上是php闯关之字符串与quoted-printable字符相互转换的详细内容。更多信息请关注PHP中文网其他相关文章!

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