我有一个网页表单,接受有关图书的信息(标题,作者,描述等)。我一直在使用CodeIgniter的活动记录db类来插入信息,并且不转义了查询,因为CodeIgniter文档声称已经执行此操作(请参阅here)。
所以这就是问题所在:如果我输入一个标题为“男孩的世界指南”,其中包含撇号,则会将其转义并正确插入数据库。但是,当我以如下形式显示它时:
<input type="text" name="title" <?php if (isset($book)) { echo "value='" . $book->name . "' "; ?> />
它只会显示“A Boy”作为标题。我理解为什么撇号会破坏,并且可以想出多种方法来解决它,但处理这种情况的最合适的方法是什么?
一如既往,非常感谢您的时间和知识!
答案 0 :(得分:6)
您应该可以使用html_escape()
CodeIgniter功能:
它基本上只是htmlspecialchars PHP函数的快捷方式。
答案 1 :(得分:0)
在自定义帮助文件中添加此函数
function escape_output($string)
{
$newString = str_replace('\r\n','<br/>',$string);
$newString = str_replace('\n\r','<br/>',$newString);
$newString = str_replace('\r','<br/>',$newString);
$newString = str_replace('\n','<br/>',$newString);
$newString = str_replace('\'','',$newString);
return $newString;
}
在视图中调用功能
<?php echo escape_output('Your escaped string here'); ?>