[英]php empty string htmlspecialchars()
因此,我试图使用htmlspecialchars()
保护我的网站,但不幸的是,我陷入了以下代码:
<?php
function wrap_nome($firstname, $lastname)
{
$join = htmlspecialchars($firstname, ENT_QUOTES) . ' ' . htmlspecialchars($lastname, ENT_QUOTES);
if (mb_strlen($join) > 32)
{
$text = substr($join,0,32);
return $text . " ...";
}
else
{
return $join;
}
}
$nome = wrap_nome($firstname, $lastname);
echo '<span style="color:#7F7F7F;font-family:Arial;font-size:13px;"><b>' . $nome . '</b></span>';
?>
最初,我认为问题可能在于字符串$nome
具有双引号和单引号,然后我将其删除,发现htmlspecialchars($lastname, ENT_QUOTES)
继续被回显,而htmlspecialchars($firstname, ENT_QUOTES)
继续给我一个空字符串!
如果我这样做:
echo '<span style="color:#7F7F7F;font-family:Arial;font-size:13px;"><b>' . htmlspecialchars($nome, ENT_QUOTES) . '</b></span>';
...它不会输出任何东西。
什么原因造成的任何想法?
如果htmlspecialchars
遇到错误,则返回FALSE
,如果$nome
包含无法在指定字符集中表示的任何字符,则会发生这种情况。 此后,字符集默认在PHP 5.4和UTF-8
之前默认为ISO8859-1
,请尝试使用htmlspecialchars($nome, ENT_QUOTES, 'iso8859-1')
。
如果这样不起作用,请参阅文档中的字符集列表,并使用适当的名称集。
只需更换
htmlspecialchars($str,ENT_QUOTES );
同
htmlentities($st ,ENT_QUOTES ,"UTF-8");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.