You should escape the JavaScript string delimiters inside the PHP string. You’re using double quotes for both PHP and JavaScript strings. Try like this instead:
<html> <body> <?php // Here, we use single quotes for PHP and double quotes for JavaScript echo '<script type="text/javascript">'; echo 'document.write("Hello World!")'; echo '</script>'; ?> </body> </html>
You have to escape quotes on both JavaScript and PHP when the string delimiter are the same as the quotes:
echo "\""; // escape is done using a backslash echo '\'';
Same in JavaScript:
alert("\""); // escape is done using a backslash alert(echo '\'');
But because it’s very hard to read a string with such escape sequences, it is better to combine single with double quotes, as needed:
echo '"'; echo "'";