2017-02-16 3 views
0

Ich habe eine Frage über HTML-Dekodierung.html entity/specialcharacters decode

Ich benutze WordPress Gravityforms Plugin, um Formulare zu verwalten. Der Formtitel enthält den Namen der Website. Diese Woche gab es einen Fehler in den Sonderzeichen, das & Zeichen wurde in der Mailbox als & angezeigt. Ich habe das mit html specialcharacters decode behoben, das super funktionierte. Später zeigte sich, dass es einen ähnlichen Fehler mit dem ' Zeichen gab. Offenbar funktioniert html_specialcharacersdecode nicht mit diesem, also habe ich auch html_entities_decode ausprobiert, was auch für das ' Zeichen nicht funktioniert.

Andere Zeichen sind perfekt decodiert wie < >() : -=+, so dass ich nicht wirklich weiß, was das Problem ist. Ich möchte nur die ' als ' anzeigen und nicht als &#039;.

Mein Code:

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

Meine konkrete Frage ist: Gibt es etwas, was ich bin hier fehlt? Wie funktioniert vielleicht eine ähnliche Funktion wie die, die ich ausprobiert habe, oder geht etwas anderes schief?

Danke!

+0

Ja, Sie können html_entity_decode ($ subject); –

Antwort

1

Sie verwenden können,

$subject = html_entity_decode($subject, ENT_QUOTES); 

Allerdings würde ich gegen HTML-Codierung beraten, bevor Sie sie in die Datenbank einfügen. Kodieren Sie es einfach, wenn Sie es ausgeben. Es ist besser, nur die Rohdaten in der Datenbank zu speichern.

+0

Danke !!!! Das hat den Trick gemacht. Und danke für den Rat. Ich weiß nicht, wie ich das in diesem Fall machen soll. Ich glaube nicht, dass es in einer Datenbank gespeichert ist, um ehrlich zu sein, nur um zum Mailserver zu gehen. Danke vielmals! :) – Maartje

+0

Mein Vergnügen, Ich bin froh, dass es für Sie gearbeitet hat. Sie können die Antwort als akzeptiert markieren @Maartje –

+0

Ja, ich werde, ich war nicht in der Lage, das zu tun, wenn Sie nur geantwortet haben, weil es nach stackoverflow zu früh war;) – Maartje