Fred Furunkelstein 2012: Zeichenumwandlung schlägt fehl

Beitrag lesen

Wie bekomme ich nun das ' über PHP und Javascript auf das Display?

In dem Du das Zeichen entweder
 1) mit einem Backslash maskierst oder
 2 einen alternantiven Stringbegrenzer verwendest.

Gehe bei 1 von hinten nach vorn durch:

Ausgabe: Gerda's Skript
Java-Skript: alert('Gerda\'s Skript');
PHP: print '<script type=\'text/javascript\'>alert alert(\'Gerda\\\'s Skript\');';

Suit wird Dir mitteilen, Du sollst den Kontextwechsel beachten. Damit hat er recht. Befasse Dich mit dem Thema.

Was jetzt die Umwandlung in das Entity &#39; betrifft, so sollte das eigentlich funktionieren. Bei mir funktioniert jedenfalls:

<?php  
print '<html>  
<div id=\'Ausgabe\'></div>  
<script type=\'text/javascript\'>document.getElementById(\'Ausgabe\').innerHTML=\'Gerda&#039;s Skript\';</script>  
</html>';  
?>

als auch:

<?php  
print '<html>  
<div id=\'Ausgabe\'></div>  
<script type=\'text/javascript\'>document.getElementById(\'Ausgabe\').innerHTML=\'Gerda\\\'s Skript\';</script>  
</html>';  
?>

was zu folgendem HTML-Code in der Ausgabe führt:

<html>  
<div id='Ausgabe'></div>  
<script type='text/javascript'>document.getElementById('Ausgabe').innerHTML='Gerda\'s Skript';</script>  
</html>

Fred