繁体   English   中英

php空字符串htmlspecialchars()

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM