在php数组输出中缺少空格和特殊字符

时间:2015-04-15 21:30:30

标签: php codeigniter

我正在使用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 } ?>

1 个答案:

答案 0 :(得分:0)

&符号(&)是HTML中的特殊字符。它引入了character entity。为了显示&符号的文字值,必须使用其字符实体(&amp;)。

如果$value['category'] == 'shoes & bags',则视图中生成的HTML为:

<li>shoes & bags</li>

但在HTML中正确表示它是:

<li>shoes &amp; bags</li>

根据某些因素,浏览器可以修复您的错误(请&amp;而不是&,以便将其呈现为&)或忽略它(阅读& bags ,不能将其解释为有效的字符实体并删除它。)

正确的代码是:

    <li><?php echo(htmlspecialchars($value['category'])); ?></li>

始终使用PHP函数htmlspecialchars()htmlentities()来正确编码从用户输入或生成HTML内容时从数据库中获取的值。