由于单引号导致php错误

时间:2012-08-09 19:07:01

标签: php

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

请告诉我我做错了什么?

5 个答案:

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

  &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>';?>

答案 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')">                   

&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 :(得分: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>';
?>

这非常混乱imo。

对您有用:如果您使用双引号,则无需大量使用引号。

比较

echo "i speak $myLanguageCount languages";
echo 'i speak '.$myLanguageCount.' languages';