我正在使用CKeditor而我无法使用它。当我用它添加图像等创建帖子/文章时,一切正常。然而,在我将文章提交到数据库之后,它会转义url和整体语法,这将导致在我尝试查看时没有显示图像。
这是编辑器中的img语法:
<img alt="logo" src="/images/image.png" style="width: 250px; height: 183px; border-width: 2px; border-style: solid;" />
这是在插入函数运行之后:
<img alt=\"logo\" src=\"/images/image.png\" style=\"width: 200px; height: 147px; border-width: 2px; border-style: solid;\" />
你得到它的要点,它逃脱了所有的必需品,所以它不会破坏HTML。我在这里做了一些搜索,找到了类似html_entity_decode
的内容,但没有用。
如何正确“取消”语法,以便图像正确显示?
PS:这是我使用的插入和显示脚本
public function insert () {
$sql = $this->db->prepare("INSERT INTO Content (Title, Body, category) VALUES (?, ?, ?)");
$sql->bindParam(1, $_POST['title']);
$sql->bindParam(2, $_POST['body']);
$sql->bindParam(3, $_POST['category']);
$sql->execute();
}
public function display ($id) {
$sql = $this->db->query("SELECT Body FROM Content WHERE id='$id'");
while ($row = $sql->fetch()) {
echo $row;
}
}
我在显示脚本中尝试html_entity_decode
,如$a = html_entity_decode($row['Body']);
,然后回显或将行分配给变量然后对其进行解码。也许我做错了,我不确定。
答案 0 :(得分:0)
在显示功能中添加了stripslashes($ output),如下所示:
public function display ($id) {
$sql = $this->db->query("SELECT Body FROM Content WHERE id='$id'");
while ($row = $sql->fetch()) {
//removes the extra slashes
echo stripslashes($row);
}
}