我被迫使用看起来像这样的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,=在每个新行之前等等。
is =26nbsp;
是否有任何功能或技术可以恢复到正确的HTML?
谢谢。
答案 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节,因此不会从行的开头剥离其他句点)。
答案 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替换字符的方法。
此外,quotedprintable和htmlspecialchars可能会有所帮助