欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-03-07 20:41:16
...
上一篇文章中我们了解了去除右侧字符的方法,有需要的请看《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); 
?>

这个的结果就是

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

我们看这个结果是不是有点奇怪,这个“=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); 
?>

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

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

当这个例子在html输出时

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

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

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

以上就是php闯关之字符串与quoted-printable字符相互转换的详细内容,更多请关注其它相关文章!

相关标签: php