0

在 PHP 代码中,我需要使用 echo 来键入一些 HTML 代码。在 HTML 中,我调用了一个事件,该事件启动了一个需要接受字符串的 JS 代码。

<?php
echo "<input type='text' name='myname' onclick='startJScode(this, "Input your name")' />";
?>

为了告诉我要回显什么,我使用了字符“,所以我使用 ' 来定义 HTML 中的字符串。但是没有其他引号类型可以用来定义 Javascript 代码的字符串 - 使用它们中的任何一个都会与已经使用的混合。

那怎么处理呢?

4

3 回答 3

1

采用 :

<?php
echo "<input type='text' name='myname' onclick='startJScode(this, \"Input your name\")' />";
?>
于 2013-09-02T12:39:54.123 回答
0

采用

<?php
echo "<input type='text' name='myname' onclick=\"startJScode(this, 'Input your name')\" />";
?>

echo " "; 

不要重复双引号

错误代码

                             v //double quote ended here
echo "this is a "test" string";
     ^ //double quote started here

因此,如果引号之间需要使用反斜杠,则必须在双引号之前使用反斜杠

正确的代码

                v //use backslash
echo "this is a \"test\" string";
                      ^ //use backslash

单引号的相同问题

错误代码

                             v //double quote ended here
echo 'this is a 'test' string';
     ^ //double quote started here

正确的代码

                v //use backslash
echo 'this is a \'test\' string';
                      ^ //use backslash

除此以外

如果开始和结束引号是双引号,则代码之间将是单引号

echo "this is a 'test' string";

如果开始和结束引号是单引号,则代码之间将是双引号

echo 'this is a "test" string';
于 2013-09-02T12:40:03.483 回答
0

您可以使用 \ 转义引号

例如:

echo "<input type='text' name='myname' onclick='startJScode(this, \"Input your name\")' />"

这将转义内部引号。

或者您可以使用Heredoc 语法

例子:

$foo = <<<CODE
    <input type="text" name="myname" onclick="startJScode(this, 'Input your name')" />
CODE;
echo $foo;

如果您想输出带有许多不同引号的 XML\HTML,Heredoc 语法非常方便,因为它允许您省略字符串的引号。

于 2013-09-02T12:45:11.333 回答