簡體   English   中英

由於單引號引起的PHP錯誤

[英]php error due to single quotes

由於單引號,我在以下代碼中收到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>';?>

請讓我知道我在做什么錯?

您需要使用\\來轉義單引號\\

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

StackOverflow上突出顯示的語法有其中之一。

;"> Don't show again

那撇號打破了你的弦。 您需要使用來對其進行轉義。 所有不破壞字符串的單引號都需要轉義,例如

;"> Don\'t show again 

正如Pete在答案中指出的那樣,您的onclick變量中也有未轉義的單引號。

您的單引號中

不要再顯示給我

文本。 您需要轉義該字符,以便它不會認為您要終止字符串。 例如:

Don\'t show me this again

當您有很多 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>
<?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';

暫無
暫無

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

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