2017-02-16 58 views
0

У меня вопрос о декодировании html.html entity/specialcharacters decode

Я использую плагин Wordpress для гравитации, чтобы управлять формами. Формат формы включает название веб-сайта. На этой неделе в специальных символах произошла ошибка, в почтовом ящике показывался знак & как &. Я исправил это, используя html specialcharacters decode, который работал отлично. Позже выяснилось, что подобная ошибка была отмечена знаком '. Очевидно, html_specialcharacersdecode не работает с этим, поэтому я также пробовал html_entities_decode, что также не работает для знака '.

Другие знаки прекрасно декодируются, такие как < >() : -=+, поэтому я не знаю, в чем проблема. Я просто хочу, чтобы ' отображался как ', а не как &#039;.

Мой код:

function before_email($email) { 
     $subject = htmlspecialchars_decode($email['subject']); 
     $subject = html_entity_decode($subject); 
     $email['subject'] = '$subject'; 
     return $email; 
    } 

Мой конкретный вопрос: есть ли что-то я здесь отсутствует? Как, может быть, какая-то функция похожа на те, которые я пробовал, или есть что-то еще не так?

Спасибо!

+0

да вы можете использовать html_entity_decode ($ subject); –

ответ

1

Вы можете использовать,

$subject = html_entity_decode($subject, ENT_QUOTES); 

Однако, я бы не советовал HTML кодирования, прежде чем вставить его в базу данных. Просто кодируйте его, когда вы выводите его. Лучше просто хранить необработанные данные в базе данных.

+0

Спасибо !!!! Это сделал трюк. И спасибо за совет. Я действительно не знаю, как это сделать в этом случае. Я не думаю, что он хранится в базе данных, если честно, просто отправляюсь на почтовый сервер. Большое спасибо! :) – Maartje

+0

Мое удовольствие, я рад, что это сработало для вас. Вы можете пометить ответ как принятый @Maartje –

+0

Да, я буду, я не смог это сделать, когда вы только что ответили, потому что это было слишком скоро в соответствии с stackoverflow;) – Maartje