簡體   English   中英

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

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

我想如何在代碼中使用大量的 ' 和 "。

例子:

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

我試過了,但出現錯誤。 任何人都可以幫忙嗎?

所以,你在這里有多層次的問題:

  1. 回顯到 html 的數據,通常應該通過 htmlspecialchars 正確轉義
  2. 你想看到document.write("..."...");在你最終生成的 html 中,這將觸發 javascript 語法錯誤
  3. 為避免此錯誤,您應該在 " 內部字符串之前使用\\

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 系統上的 \\n,包括 Mac OS X。結束定界符后面還必須跟一個換行符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM