2016-07-28 21 views
3

Ich habe eine PHP-Zeichenfolge, die einfache und doppelte Anführungszeichen enthält, aber habe eine harte Zeit bekommen es richtig entkommen. Selbst versucht Online-Sites zu quotieren, aber auch ihre Ergebnisfehler.Escape einfache Anführungszeichen in Zeichenfolge mit einfachen und doppelten Anführungszeichen

$confirmation .= '<a title="Share on Facebook" target="_blank" href="javascript: void(0)" onclick="window.open('http://www.facebook.com/sharer.php?u=http%3A%2F%2Fmydomain.com%2Fquiz%2F','sharer','toolbar=0,status=0,width=548,height=325');" class="">Share on Facebook</a>'; 

Ich glaube nicht, dass die doppelten Anführungszeichen geflüchtet werden müssen. Trotzdem führen alle meine Versuche beim Laden der Seite zu HTTP 500.

Wie werden die einfachen Anführungszeichen in dieser Zeichenfolge maskiert?

+0

Zuerst erhalten Sie [PHP-Fehler anzuzeigen] (http://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display) – FirstOne

+0

Sie haben Recht. Unten kommentiert - das ist in der Tat PHP. – rwkiii

Antwort

6

verschachtelte Anführungszeichen in PHP zu entkommen, verwenden Sie die \

$confirmation .= '<a title="Share on Facebook" target="_blank" href="javascript: void(0)" onclick="window.open(\'http://www.facebook.com/sharer.php?u=http%3A%2F%2Fmydomain.com%2Fquiz%2F\',\'sharer\',\'toolbar=0,status=0,width=548,height=325\');" class="">Share on Facebook</a>'; 

Für einen komplizierten Fall mit vielen Zitaten, kann es besser lesbar und sinnvoll sein, eine heredoc zu verwenden:

$confirmation .= <<<EOT 
    <a title="Share on Facebook" target="_blank" href="javascript:void(0)" onclick="window.open('http://www.facebook.com/sharer.php?u=http%3A%2F%2Fmydomain.com%2Fquiz%2F','sharer','toolbar=0,status=0,width=548,height=325');" class="">Share on Facebook</a> 
EOT; 
+1

Sie haben Recht. Der Code ist in functions.php - Ich hatte ein anderes Fenster in meinem Editor geöffnet und wurde total verwirrt - zweimal. : S Es ist PHP. – rwkiii

+2

YAY für heredoc Konnte nicht zustimmen, für verschachtelte Vars, wo viel Flucht erforderlich wäre, ist Heredoc-Syntax der Weg zu gehen. –

0

$confirmation .= '<a title="Share on Facebook" target="_blank" href="javascript: void(0)" onclick="window.open(\'http://www.facebook.com/sharer.php?u=http%3A%2F%2Fmydomain.com%2Fquiz%2F\',\'sharer\',\'toolbar=0,status=0,width=548,height=325\');" class="">Share on Facebook</a>';

+0

Beide Antworten auf diesen Beitrag sehen für mich korrekt aus. Ich habe versucht, ihnen zu entkommen, genau wie deine und Brandons Beispiele, aber ohne Erfolg. – rwkiii

+1

Was ist passiert, als du es versucht hast? –

+0

'PHP Parse Fehler: Syntaxfehler, unerwartet '<<' (T_SL)' – rwkiii

Verwandte Themen