PHP HTML解码

时间:2014-11-07 15:05:44

标签: php html encoding character-encoding

我被迫使用看起来像这样的HTML:

<font color=3D=22=236EAED2=22 style=3D=22font-siz=
e:13px;font-family:arial;=22><B>Some Info Here</B></font></=
A></td></tr><tr><td><font color=3D=22=23FFFFFF=22 style=3D=22font-size:11=
px;font-family:arial;=22>192 Wellington Parade =7C Melbourne =7C  VIC =7C=
Australia 3002</font></td></tr><tr><td><font color=3D=22=23FFFFFF=22 st=
yle=3D=22font-size:11px;font-family:arial;=22>T: 61-<a href=3D=22=23=22 s=
tyle=3D=22color:=23FFFFFF; text-decoration:none=22>

看起来“转换为= 22,依此类推。 还有其他“代码”,例如= 7C = 3D,=在每个新行之前等等。

&nbsp; is =26nbsp;

是否有任何功能或技术可以恢复到正确的HTML?

谢谢。

3 个答案:

答案 0 :(得分:4)

使用quoted_printable_decode("YOUR String to decode");imap_qprint("Your String to decode")

检查 FIDDLE

描述:quoted_printable_decode - 将带引号的可打印字符串转换为8位字符串

他的函数返回一个8位二进制字符串,对应于解码的引用可打印字符串(根据»RFC2045,第6.7节,而非»RFC2821,第4.5.2节,因此不会从行的开头剥离其他句点)。

More Infohere too

答案 1 :(得分:3)

这是quoted-printable encoding,可以使用quoted_printable_decode进行解码。

像这样:

$input= "the string that you need to be decoded";
$output = quoted_printable_decode($input);
echo $output;

答案 2 :(得分:1)

看起来他们只是用'替换'%'。你说= 22被翻译成'“',%22是”。

的网址编码字符

看看here for a chart,您可能想出一种用PHP替换字符的方法。

此外,quotedprintablehtmlspecialchars可能会有所帮助