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 に答える