由于单引号,我在以下代码中收到了php错误。
<?PHP $annoc=echo '<div id="announcement" class="announcement'.$rid1.'">
<div id="AContent"><span style="margin:0px 0px 0px 20px;">'.strip_tags($notify).'</span>
<div style="float:right;">
<span class="remind" onclick="announce('.$rid1.','.$userID.','Remind')">
Remind me later</span>
<span class="dont" onclick="announce('.$rid1.','.$userID.','Dont');"> Don't show me this
again</span></div></div></div>';?>
请告诉我我做错了什么?
答案 0 :(得分:1)
您需要使用\
<?PHP $annoc=echo '<div id="announcement" class="announcement'.$rid1.'">
<div id="AContent"><span style="margin:0px 0px 0px 20px;">'.strip_tags($notify).'</span>
<div style="float:right;">
<span class="remind" onclick="announce('.$rid1.','.$userID.',\'Remind\')">
Remind me later</span>
<span class="dont" onclick="announce('.$rid1.','.$userID.',\'Dont\');"> Don\'t show me this
again</span></div></div></div>';?>
答案 1 :(得分:1)
StackOverflow上的语法高亮显示有其中一个。
;"> Don't show again
撇号打破了你的字符串。你需要逃避它。所有不破坏字符串的单引号都需要进行转义,例如
;"> Don\'t show again
你的onclick变量中也有未转义的单引号,正如Pete在答案中指出的那样。
答案 2 :(得分:1)
你的
中有撇号不要再告诉我这个
文本。您需要转义该字符,以便它不会认为您正在终止该字符串。 EG:
Don\'t show me this again
答案 3 :(得分:1)
当您拥有HTML的 lot 时,就像在这种情况下一样,在适当的时候将PHP添加到HTML中通常更简单,而不是将HTML放在字符串中。
这可能更清晰,有助于减少将来的错误:
<div id="announcement" class="announcement<?= $rid1 ?>">
<div id="AContent"><span style="margin:0px 0px 0px 20px;"><?= strip_tags($notify) ?></span>
<div style="float:right;">
<span class="remind" onclick="announce(<?= $rid1 ?>,<?= $userID ?>,'Remind')">
Remind me later</span>
<span class="dont" onclick="announce(<?= $rid1 ?>,<?= $userID ?>,'Dont');"> Don't show me this again</span></div></div></div>
答案 4 :(得分:0)
<?php
$annoc = echo '<div id="announcement" class="announcement'.$rid1.'">
<div id="AContent"><span style="margin:0px 0px 0px 20px;">'.strip_tags($notify).'</span>
<div style="float:right;">
<span class="remind" onclick="announce('.$rid1.','.$userID.',\'Remind\')">
Remind me later</span>
<span class="dont" onclick="announce('.$rid1.','.$userID.',\'Dont\');"> Don\'t show me this again</span></div></div></div>';
?>
这非常混乱imo。
对您有用:如果您使用双引号,则无需大量使用引号。
比较
echo "i speak $myLanguageCount languages";
echo 'i speak '.$myLanguageCount.' languages';