簡體   English   中英

PHP的回聲動態變量包含引號

[英]php echoing dynamic variable containing quotes

我有一個$ dcomment變量,需要執行以下操作:

echo '<div class="commentBox">' . 
      '<span class="byText">[BY]</span> ' . 
      '<span class="commenterName"><a href=" '.$webLink.' ">'.$dname.'</a></span>' . 
      '&nbsp; [DATE] ' . $dt . '</span>' . '<br>' .
      '[COMMENT] ' . $dcomment .
      $linkdel . '<br />' . 
'</div>';

變量中可能包含引號,例如

$dcomment = "Stackoverflow's great"; // containing single quote in it ... etc

有沒有內置的php函數來解決這個問題,或者我該怎么做?

我認為您正在尋找htmlentities($str) (單擊手冊頁)

它將替換所有適用於HTML實體的字符,因此您不必擔心在標記和屬性字段中會出現"<和類似字符。


如果您還想轉義單引號' ,請使用

htmlentities($str, ENT_QUOTES)

(如文檔中所述)

您可以將所有引號替換為其HTML實體。 htmlentitiesstr_replace

htmlentitieshttp : //php.net/manual/zh/function.htmlentities.php

str_replacehttp : //php.net/manual/zh/function.str-replace.php

注意 :您需要將ENT_QUOTES用於htmlentities

htmlentities($dcomment, ENT_QOUTES)

為了轉義在HTML上下文中使用的字符串,PHP提供了htmlspecialchars函數。 它將用各自的HTML實體替換"'&<>

如果您需要轉義字符串以用作URL,則可以使用urlencoderawurlencode函數。

有時有必要將兩者結合起來,即html-轉義urlencoded字符串。

好的,我這樣做了,並工作了:[我投票贊成在這里幫助過我的每個人,謝謝大家]

$name= mysql_real_escape_string($_POST['name']);
$emailAddress = mysql_real_escape_string($_POST['emailAddress']);
$webAddress = mysql_real_escape_string($_POST['webAddress']);
$comment=mysql_real_escape_string($_POST['comment']);
$submit=mysql_real_escape_string($_POST['submit']);

感謝@MightyPork :-)

暫無
暫無

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

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