如何使用 PHP 输出 JavaScript

php
2022-08-30 18:38:26

我是PHP的新手。我需要用PHP输出以下JavaScript。这是我的代码:

<html>
<body>
<?php

echo "<script type="text/javascript">";
echo "document.write("Hello World!")";
echo "</script>";

?>
</body>
</html>

但它显示了错误:

解析错误:语法错误、意外T_STRING、在第 4 行的 /var/www/html/workbench/person/script.php中期望 “,” 或 “;”

任何人都可以帮忙吗?我还需要一些关于如何使用PHP,HTML和JavaScript应用程序的简单教程。


答案 1

您应该对 PHP 字符串内的 JavaScript 字符串分隔符进行转义。你对 PHP 和 JavaScript 字符串都使用双引号。试试这个样子:

<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>

当字符串分隔符与引号相同时,您必须在JavaScript和PHP上转义引号:

echo "\""; // escape is done using a backslash
echo '\'';

在 JavaScript 中相同:

alert("\""); // escape is done using a backslash
alert(echo '\'');

但是,由于很难读取具有此类转义序列的字符串,因此最好根据需要将单引号与双引号组合在一起:

echo '"';
echo "'";

答案 2

如果因为您需要转义引号(如其他答案所说),则会出现错误。

为了避免这种情况,您可以为字符串声明使用另一种语法,称为“Heredoc”"

使用此语法,您可以声明一个长字符串,甚至包含单引号和/或双引号,而不必转义那些 ;它会让你的Javascript代码更容易编写,修改和理解 - 这总是一件好事。

例如,您的代码可能变成:

$str = <<<MY_MARKER
<script type="text/javascript">
  document.write("Hello World!");
</script>
MY_MARKER;

echo $str;

请注意,使用Heredoc语法(与用双引号分隔的字符串一样),变量是内插的。


推荐