我如何在PHP和Javascript的代码中使用'和“”

how can i use ' and " in a code in PHP and Javascript?

本文关键字:代码 PHP Javascript      更新时间:2023-09-26

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

例:

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

我试过了,但出现错误。有人可以帮忙吗?

所以

,你在这里有多级问题:

  1. 回显到 HTML 的数据,通常应通过 htmlspecialchars 正确转义
  2. 你想在最终生成的HTML中看到document.write("..."...");,这将触发JavaScript语法错误
  3. 为避免此错误,您应该在" inside String之前使用'

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. 转义内部双斜杠

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;

这将起作用:

<?php
$url = "http://www.google.com";
$row = array("image" => "image.png");
echo "document.write('<a href='"$url'"> <img src='"".$row["image"]."'" border=0 /> </a>');";
// output: document.write('<a href="http://www.google.com"> <img src="image.png" border=0 /> </a>');
?>

您可以使用 heredoc 语法:

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

来自 phpdocs

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

另请注意,

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