我正在使用CodeIgniter创建一个Web应用程序,但我遇到了类别打印名称的问题。
某些类别保存在数据库中,名称为“shoes& bags” 前端的结果是“鞋子”。 我在做的是:
型号:
function displayCategory(){
$result = $this->db->get('category');
return $result->result_array();
}
控制器:
$pelcst_d['categorylist'] = $this->category->displayCategory();
查看:
<?php foreach ($category as $key => $value) { ?>
<li><?php echo $value['category']; ?></li>
<?php } ?>
答案 0 :(得分:0)
&符号(&
)是HTML中的特殊字符。它引入了character entity
。为了显示&符号的文字值,必须使用其字符实体(&
)。
如果$value['category'] == 'shoes & bags'
,则视图中生成的HTML为:
<li>shoes & bags</li>
但在HTML中正确表示它是:
<li>shoes & bags</li>
根据某些因素,浏览器可以修复您的错误(请&
而不是&
,以便将其呈现为&
)或忽略它(阅读& bags
,不能将其解释为有效的字符实体并删除它。)
正确的代码是:
<li><?php echo(htmlspecialchars($value['category'])); ?></li>
始终使用PHP函数htmlspecialchars()
或htmlentities()
来正确编码从用户输入或生成HTML内容时从数据库中获取的值。