How to output JavaScript with PHP

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 "'";

Leave a Comment