我该如何使用'和"在PHP和Javascript的代码中?

时间:2016-03-07 21:29:03

标签: javascript php

我想我可以如何使用很多'和"在代码中。

示例:

echo 'document.write("<a href='$url'> <img src='{$row["image"]}' border='0' /> </a>");';

我试过但我得错了。有人可以帮忙吗?

4 个答案:

答案 0 :(得分:1)

所以,你有多层次的问题:

  1. 回显给html的数据,通常应该通过htmlspecialchars正确转义
  2. 您希望在最终生成的html中看到document.write("..."...");,这会触发javascript语法错误
  3. 为了避免此错误,您应该在“inside string
  4. 之前使用\

    echo 'document.write("<a href=\"' . htmlspecialchars($url) . '\"><img src=\"' . htmlspecialchars($row["image"]) . '\" border=\"0\" /></a>");';

    注意:我使用带单引号的echo,如果你使用双引号 - 你必须加倍\\

    如果是双引号,您的代码将如下所示:

    echo "document.write(\"<a href=\\\"" . htmlspecialchars($url) . "\\\"><img src=\\\"" . htmlspecialchars($row["image"]) . "\\\" border=\\\"0\\\" /></a>\");";

答案 1 :(得分:1)

以下是解决此问题的三种方法。

<强> 1。逃避内部双斜线

echo "document.write('<a href=\"$url\"> <img src=\"{$row['image']}\" border=\"0\" /> </a>');";

<强> 2。关闭PHP标签并编写javascript

?> document.write('<a href="<?php echo $url; ?>"> <img src="<?php echo $row['image']; ?>" border="0" /> </a>'); <?php

第3。使用Heredoc语法

echo <<<EOJS document.write('<a href="$url"> <img src="{$row['image']}" border="0" /> </a>'); EOJS;

答案 2 :(得分:0)

这将有效:

 $templateCached

答案 3 :(得分:0)

您可以使用heredoc语法:

echo <<<EOT
document.write(<a href='{$url}'> <img src='{$row["image"]}' border='0' /> </a>);

EOT;

来自phpdocs

  

Heredoc文本的行为就像一个双引号字符串,没有   双引号。这意味着heredoc中的引号不需要   转义,但仍可使用上面列出的转义码。   变量被扩展,但必须同样谨慎   用字符串表示heredoc中的复杂变量。

另请注意,

  

注意具有结束标识符的行非常重要   必须不包含其他字符,分号(;)除外。这意味着   特别是标识符可能没有缩进,也可能没有   分号前后的任何空格或制表符。它也是   重要的是要意识到结束前的第一个角色   identifier必须是本地操作系统定义的换行符。   这是在UNIX系统上的\ n,包括Mac OS X.结束分隔符   还必须跟一个换行符。