我在类中的另一个函数内调用htmlspecialchars函数,但是当我这样做时,即使数据显示,它也会删除所有显示数据的格式。
这是代码:
class Name {
. .. .
public function h($s)
{
echo htmlspecialchars($s, ENT_QUOTES);
}
public function formatQuotes($row)
{
return "<p id=\"ab_quotes\">" . this->h($row['cQuotes']) . "</p>"
. "<p id=\"ab_author\">" . this->h($row['vAuthor']) . "</p>";
}
}
如果我删除对htmlspecialchars函数的引用,它会显示应该的数据。
更新:
这是我申请的css:
p#ab_quotes{
font-size: 22px;
word-wrap: break-word;
position: absolute;
top: 80px;
left: 5px;
padding: 8px 6px;
}
p#ab_author {
font-size: 15px;
position: absolute;
top: 200px;
right: 5px;
padding: 8px 6px;
text-transform: uppercase;
letter-spacing: 0.1em;
color: #EB3B55;
}
$ row ['cQuotes']和作者变量中没有html。它是在实现htmlspecialchars时删除的css格式。
另一件事,我注意到如果我删除ENT_QUOTES
,它可以工作,但再次使用它,它会删除格式。为什么会这样呢?
答案 0 :(得分:1)
格式化是什么意思?如果您指的是HTML代码,htmlspecialchars将用这些实体替换这些对HTML至关重要的字符:
(取自此处:http://php.net/manual/en/function.htmlspecialchars.php)
当然,没有任何格式化会产生影响。这就是htmlspecialchars()的重点。
答案 1 :(得分:1)
问题可能是函数h()
需要返回数据而不是回显它(基于你如何使用h()
的结果)