0

我有一个变量 $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 函数来解决这个问题,或者我该怎么做?

4

5 回答 5

1

为了转义字符串以在 HTML 上下文中使用,PHP 提供了该htmlspecialchars函数。它将用它们各自的 HTML 实体替换"'&<和。>

如果您需要转义字符串以用作 URL,则可以使用urlencodeandrawurlencode函数。

有时需要将两者结合起来,即 html-escape 一个 urlencoded 字符串。

于 2013-08-03T22:46:10.477 回答
1

我想您正在寻找htmlentities($str)(点击查看手册页)

它将所有适用的字符替换为 HTML 实体,因此您不必担心在标记和属性字段中获取",和类似字符。<


如果您还想转义单引号',请使用

htmlentities($str, ENT_QUOTES)

(如文档中所述)

于 2013-08-03T22:25:35.413 回答
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_QUOTESfor htmlentities

于 2013-08-03T22:26:35.257 回答
1
htmlentities($dcomment, ENT_QOUTES)
于 2013-08-03T22:37:48.190 回答
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 :-)

于 2013-08-03T22:50:48.013 回答