Я пытаюсь разрешить пользователю хранить строку в базе данных, которая часто содержит якорный тег и несколько абзацев. Я отправляю в свою базу данных, а 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;
}
Просто пришлось подумать об этом вслух. Я не использовал .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, а не новые строковые символы.