php echoing包含引号的动态变量

时间:2013-08-03 22:22:32

标签: php

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

5 个答案:

答案 0 :(得分:1)

我认为您正在寻找 htmlentities($str) (点击手册页)

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


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

htmlentities($str, ENT_QUOTES)

(如文档中所述)

答案 1 :(得分:1)

您可以用HTML实体替换所有引号。 htmlentitiesstr_replace

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

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

注意:您需要ENT_QUOTES使用htmlentities

答案 2 :(得分:1)

htmlentities($dcomment, ENT_QOUTES)

答案 3 :(得分:1)

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

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

有时需要将两者结合起来,即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: - )