0

我正在使用 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']);,然后回显它或将行分配给一个变量然后解码它。也许我做错了,我不确定。

4

1 回答 1

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); 
    }
}
于 2013-01-22T18:50:11.580 回答