我想我可以如何使用很多'和"在代码中。
示例:
echo 'document.write("<a href='$url'> <img src='{$row["image"]}' border='0' /> </a>");';
我试过但我得错了。有人可以帮忙吗?
答案 0 :(得分:1)
所以,你有多层次的问题:
document.write("..."...");
,这会触发javascript语法错误\
醇>
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.结束分隔符 还必须跟一个换行符。