18 php
我是PHP的新手.我需要用PHP输出以下JavaScript.这是我的代码:
<html>
<body>
<?php
echo "<script type="text/javascript">";
echo "document.write("Hello World!")";
echo "</script>";
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但它显示错误:
解析错误:语法错误,意外T_STRING,期待','或';' 在第4行的/var/www/html/workbench/person/script.php中
有人可以帮忙吗?我还需要一些关于如何在应用程序中使用PHP,HTML和JavaScript的简单教程.
Ion*_*tan 54
您应该转义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>
Run Code Online (Sandbox Code Playgroud)
当字符串分隔符与引号相同时,您必须在JavaScript和PHP上转义引号:
echo "\""; // escape is done using a backslash
echo '\'';
Run Code Online (Sandbox Code Playgroud)
与JavaScript相同:
alert("\""); // escape is done using a backslash
alert(echo '\'');
Run Code Online (Sandbox Code Playgroud)
但是因为读取具有这种转义序列的字符串非常困难,所以最好根据需要将单引号与双引号结合起来:
echo '"';
echo "'";
Run Code Online (Sandbox Code Playgroud)
Pas*_*TIN 32
你得到的错误,因为你需要逃避引号(如其他答案所说).
为避免这种情况,您可以为字符串声明使用替代语法,称为" Heredoc "
使用这种语法,您可以声明一个长字符串,甚至包含单引号和/或双引号,而不必转义; 它将使您的Javascript代码更容易编写,修改和理解 - 这总是一件好事.
例如,您的代码可能变为:
$str = <<<MY_MARKER
<script type="text/javascript">
document.write("Hello World!");
</script>
MY_MARKER;
echo $str;
Run Code Online (Sandbox Code Playgroud)
请注意,使用Heredoc语法(与双引号分隔的字符串一样),插入变量.
另一种选择是这样做:
<html>
<body>
<?php
//...php code...
?>
<script type="text/javascript">
document.write("Hello World!");
</script>
<?php
//....php code...
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果您想在JavaScript中使用PHP,请执行以下操作:
<html>
<body>
<?php
$text = "Hello World!";
?>
<script type="text/javascript">
document.write("<?php echo $text ?>");
</script>
<?php
//....php code...
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
希望这可以提供帮助.
更简单的方法是使用PHP的heredoc语法.一个例子:
<?php
echo <<<EOF
<script type="text/javascript">
document.write("Hello World!");
</script>
EOF;
?>
Run Code Online (Sandbox Code Playgroud)