2014-11-07 3 views
2

Я вынужден работать с HTML, который выглядит следующим образом: ". Конвертируется в = 22 и так далее Существует также другие„PHP HTML Decode

<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> 

Похоже, коды“как = 7С = 3D = перед каждой новой строки и так далее.

&nbsp; is =26nbsp; 

есть ли функция или метод восстановления для правильного HTML?

Спасибо.

+0

Это не принадлежит в разделе PHP. – Daan

+0

Возможно, вы можете использовать str_replace для выполнения некоторых операций. – vcanales

+0

Да, вы также можете использовать preg_replace, а не точку. Я думаю, что php здесь не может быть и речи. – Daan

ответ

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 Info и here too

+0

Спасибо, ребята, так много! quoted_printable_decode() решил это pefectly, я понятия не имел об этой функции, и @Gumbo ваш ответ также очень полезен, спасибо. –

+1

@ tonirmc, добро пожаловать. Оба они одинаковы, но 'imap_qprint()': для этого требуется, чтобы модуль IMAP/расширение работал. –

1

Похоже, они просто заменить '%' с =. Вы говорите, что = 22 переводится в '' ', а% 22 - символ кодирования url для ".

Посмотрите here for a chart, и вы, вероятно, можете найти способ заменить символы PHP.

Кроме того, quotedprintable и htmlspecialchars может быть полезен

3

То будет quoted-printable encoding, который можно декодировать с quoted_printable_decode.

Как так:

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

Ссылки скоропортящиеся, вы должны включить код в свой ответ;) –

+3

@AresDraguna Как '$ output = quoted_printable_decode ($ input)' или что? – Gumbo

+0

да, точно так же;) снова, ссылки скоропортящиеся –