обратный mysql_real_escape_string

У меня есть часть данных, которая является большой и, вероятно, будет содержать цитаты и двойные кавычки.

Я использую mysql_real_escape_string() для безопасного хранения.

Когда я вытаскиваю его, чтобы посмотреть на него, все кавычки убегают. Я попытался использовать str_replace чтобы просто избавиться от всех кавычек, но это превращает \r\n в rn . 🙁

Как я могу отменить его, чтобы данные возвращались так, как они поступали?

Используете ли вы магические цитаты?

Примечание. Если magic_quotes_gpc включен, сначала примените stripslashes () к данным. Использование этой функции [mysql_real_escape_string] для данных, которые уже были экранированы, приведет к двойному удалению данных.

Кто говорит?

 $keyword = "TEST'TEST"; $result1 = mysql_real_escape_string($keyword); echo $result1 --> TEST\'TEST $result2 = nl2br(stripslashes($result)); echo $result2 --> TEST'TEST 

Если вы действительно хотите отменить это из-за того, как ваши данные отформатированы, это решение, с которым я столкнулся:

 function mysql_unreal_escape_string($string) { $characters = array('x00', 'n', 'r', '\\', '\'', '"','x1a'); $o_chars = array("\x00", "\n", "\r", "\\", "'", "\"", "\x1a"); for ($i = 0; $i < strlen($string); $i++) { if (substr($string, $i, 1) == '\\') { foreach ($characters as $index => $char) { if ($i <= strlen($string) - strlen($char) && substr($string, $i + 1, strlen($char)) == $char) { $string = substr_replace($string, $o_chars[$index], $i, strlen($char) + 1); break; } } } } return $string; }