我有一个变量$ dcomment,需要执行以下操作:
echo '<div class="commentBox">' .
'<span class="byText">[BY]</span> ' .
'<span class="commenterName"><a href=" '.$webLink.' ">'.$dname.'</a></span>' .
' [DATE] ' . $dt . '</span>' . '<br>' .
'[COMMENT] ' . $dcomment .
$linkdel . '<br />' .
'</div>';
变量可能包含引号,例如
$dcomment = "Stackoverflow's great"; // containing single quote in it ... etc
有没有内置的php函数可以解决这个问题,或者我该怎么做?
答案 0 :(得分:1)
我认为您正在寻找 htmlentities($str)
(点击手册页)
它会将所有适用的字符替换为HTML实体,因此您不必担心在标记和属性字段中获取"
,<
和类似字符。
如果您还要转义单引号'
,请使用
htmlentities($str, ENT_QUOTES)
(如文档中所述)
答案 1 :(得分:1)
您可以用HTML实体替换所有引号。 htmlentities
或str_replace
htmlentities
:http://php.net/manual/en/function.htmlentities.php
str_replace
:http://php.net/manual/en/function.str-replace.php
注意:您需要ENT_QUOTES
使用htmlentities
。
答案 2 :(得分:1)
htmlentities($dcomment, ENT_QOUTES)
答案 3 :(得分:1)
为了转义字符串以便在HTML上下文中使用,PHP提供了htmlspecialchars
函数。它会将"
,'
,&
,<
和>
替换为各自的HTML实体。
如果您需要转义字符串以用作网址,则可以使用urlencode
和rawurlencode
函数。
有时需要将两者结合起来,即html-escape一个urlencoded字符串。
答案 4 :(得分:0)
好的我做了这个并且工作过:[我已经把所有在这里帮助过我的人投了票,谢谢大家]
$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: - )