0

由于单引号,我在以下代码中收到 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')">                   

  &nbsp;&nbsp;&nbsp;  Remind me later</span> &nbsp;&nbsp;
  <span class="dont" onclick="announce('.$rid1.','.$userID.','Dont');"> Don't show me this         

  again</span></div></div></div>';?>

请让我知道我做错了什么?

4

5 回答 5

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\')">                   

  &nbsp;&nbsp;&nbsp;  Remind me later</span> &nbsp;&nbsp;
  <span class="dont" onclick="announce('.$rid1.','.$userID.',\'Dont\');"> Don\'t show me this         

  again</span></div></div></div>';?>
于 2012-08-09T19:08:50.280 回答
1

StackOverflow 上的语法高亮就是其中之一。

;"> Don't show again

那个撇号从你的字符串中断开。您需要使用 . 所有不破坏字符串的单引号都需要转义,例如

;"> Don\'t show again 

正如皮特在答案中指出的那样,您的 onclick 变量中也有未转义的单引号。

于 2012-08-09T19:09:01.477 回答
1

你有一个撇号在你的

不要再给我看这个

文本。您需要转义该字符,以免它认为您正在终止字符串。例如:

Don\'t show me this again
于 2012-08-09T19:09:22.163 回答
1

当您有很多HTML 时,就像在这种情况下所做的那样,通常在适当的地方将 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')">                   

&nbsp;&nbsp;&nbsp;  Remind me later</span> &nbsp;&nbsp;
<span class="dont" onclick="announce(<?= $rid1 ?>,<?= $userID ?>,'Dont');"> Don't show me this again</span></div></div></div>
于 2012-08-09T19:17:33.800 回答
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\')">                   

            &nbsp;&nbsp;&nbsp;  Remind me later</span> &nbsp;&nbsp;
            <span class="dont" onclick="announce('.$rid1.','.$userID.',\'Dont\');"> Don\'t show me this again</span></div></div></div>';
?>

这真是一团糟。

也许对您有用:如果您使用双引号,则不必大量使用引号。

相比:

echo "i speak $myLanguageCount languages";
echo 'i speak '.$myLanguageCount.' languages';
于 2012-08-09T19:15:43.817 回答