【发布时间】:2010-07-23 11:07:16
【问题描述】:
我在一个类的另一个函数中调用 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'] 和 Author 变量中没有 html。它是在实现 htmlspecialchars 时删除的 css 格式。
我注意到的另一件事是,如果我删除了ENT_QUOTES,它会起作用,但再次使用它,它会删除格式。为什么会这样?
【问题讨论】:
-
请提供一些输入数据样本。
-
您的
$row['cQuotes']和$row['vAuthor']变量中是否有HTML? -
不应该是这样吗?
-
另外,函数h需要返回数据,而不是回显它
-
它不读取 html,忽略
<p>和我所做的所有 css 格式。它只是在一行中显示数据,没有任何间距。
标签: php htmlspecialchars