0

我与codeigniter堆叠在一起,从数据库中获取数组值时,我将其发送到解析器,解析器显示包含数组值的页面,所以问题是html没有显示如何做到这一点:

< to &lt;
> to &gt;

主要问题是html没有按预期显示

4

3 回答 3

3

查看htmlspecialchars PHP 函数。

于 2012-05-11T16:32:15.230 回答
2

您可以将输出包装在htmlspecialchars();函数中,例如:

print htmlspecialchars($content);
于 2012-05-11T16:31:48.133 回答
2

htmlspecialchars是使用原生 PHP 的方式,但您也可以使用 Codeigniter 的html_escape函数,如下所示:

function html_escape($var)
{
    if (is_array($var))
    {
        return array_map('html_escape', $var);
    }
    else
    {
        return htmlspecialchars($var, ENT_QUOTES, config_item('charset'));
    }
}

您也可以传入数组,它会转义每个项目。这也适用于您的字符集(应该是UTF-8)。在 PHP 5.4 中,默认编码是UTF-8,但在此之前它是ISO-8859-1,这意味着您必须在每次调用时设置所有 3 个参数,htmlspecialchars否则如果字符串中包含不在默认编码中的字符,您最终可能会得到一个损坏的字符串:

$var = htmlspecialchars($str, ENT_QUOTES, 'UTF-8');

所以这是一个很好的快捷方式,而且它总是可用的(无需加载帮助程序)。

于 2012-05-11T18:33:53.340 回答