Как я могу изменить косые черты, которые добавляются к цитатам из MySQL, вернуться к их исходной форме для отображения

0

Я пытаюсь разрешить пользователю хранить строку в базе данных, которая часто содержит якорный тег и несколько абзацев. Я отправляю в свою базу данных, а mysql добавляет к \ к цитатам и таким образом через mysql_real_escape_string(). Теперь, когда я делаю вызов для получения информации обратно, я получаю строку, подобную этой

Pop some popcorn, make some hot cocoa and let your kids enjoy these movies during their winter break! Find more lists of books <a href="\'#\'">Here</a>\nThis should be a new line of text.

Это фактически выводится корректно до нового символа линии, где он фактически отображает \n вместо разрыва строки.

Я пытаюсь обрабатывать эту строку с помощью javascript для вывода ее в правильном формате. Я пытаюсь сделать это

var msg = $("<textarea>").html( (response.banner_msg) ).text();
$(".booklist-msg").html(msg.replace(/\n/g, '<br />'));

Но это не работает. Я также пробовал использовать htmlentity() в моем почтовом вызове php, а затем на моем вызове html_entity_decode(). Я также хотел бы добавить в stripslashes() потому что этот абзац будет доступен для редактирования, и косые черты постоянно строятся друг на друга каждый раз, когда я обновляюсь.

Это моя функция сообщения

function updateBooklistDetails($second_db, $booklist) {
    $name = mysql_real_escape_string($booklist[name]);
    $img = mysql_real_escape_string($booklist[img]);
    $msg = htmlentities(mysql_real_escape_string($booklist[msg]));
    $auth = mysql_real_escape_string($booklist[auth]);
    $id = $booklist[listId];
    $res = $second_db->query( $second_db->prepare("UPDATE 'BookList' SET booklist_name = %s, author = %s, banner_msg = %s, image_url = %s WHERE booklist_id = %s ", $name, $auth, $msg, $img, $id) );
    return $res;
}

Это моя функция get

function retrieveBooklistInfo( $request ) {
    $second_db = new wpdb(DB_USER, DB_PASSWORD, "saic3_LibraryIndex", 
    DB_HOST);
    $id = $request['id'];
    $id = (string)$id;
    $booklist = getBooklistById($second_db, $id );
    $booklist->booklist_name = stripslashes($booklist->booklist_name);
    $booklist->banner_msg = html_entity_decode($booklist->banner_msg, ENT_QUOTES);
    $booklist->books = getBooklistBooksById($second_db, $id );
    $booklist->category = getBooklistCategoryById($second_db, $id );
    $second_db->close();
    return $booklist;
}
Теги:
html-encode

1 ответ

0

Просто пришлось подумать об этом вслух. Я не использовал .replace() правильно.

Это должно было быть

$(".booklist-msg").html(msg.replace(/\\n/g, '<br/>'));

и не

$(".booklist-msg").html(msg.replace(/\n/g, '<br/>'));

Я забыл избежать спасательного персонажа. и что касается проблемы с косой чертой, которую я использовал

$booklist->banner_msg = str_replace("\'", "'", $booklist->banner_msg);

чтобы только сбрасывать косые черты из qoutes, а не новые строковые символы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню