[英]Error due to using single quotes in htmlspecialchars and htmlentities in 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')">
Remind me later</span>
<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\')">
Remind me later</span>
<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')">
Remind me later</span>
<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\')">
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';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.