Восстановить сбежавшие персонажи

0

Я сохранил некоторые данные в базе данных с помощью mysql_real_escape_string(), поэтому одиночные кавычки экранируются как '. Он выглядит нормально в браузере, но как я могу преобразовать его обратно в одиночную кавычку, когда я сохраняю текст в txt файле?

  • 0
    На каком языке? Вы должны просто иметь возможность вызывать функцию замены строк, чтобы заменить &#39 на ' .
  • 0
    В PHP Я думал о том же. Думаю, я сделаю это так.
Теги:
escaping

3 ответа

4
Лучший ответ

Обратите внимание, что mysql_real_escape_string() делает не поворот apostrophes ' в ' Только функции, ориентированные на HTML, поэтому вы должны иметь вызовы htmlentities() где-то в вашем script.

Что касается вашего вопроса, то функция, которую вы ищете, html_entity_decode()

echo html_entity_decode(''', ENT_QUOTES);
2

Вот почему вы не должны хранить закодированный текст в базе данных. Вы должны были сохранить его в оригинальном формате и закодировать его при его отображении.

Теперь вам нужно проверить, какие символы выполняет функция, и записывать замены строк, которые преобразуют их обратно, в обратном порядке.

Пример псевдокода:

s = Replace(s, "'", "'")
s = Replace(s, "&lt;", "<")
s = Replace(s, "&gt;", ">")
s = Replace(s, "&amp;", "&")
-2

Это просто значение ascii "", используйте chr, чтобы вернуть его персонажу. Здесь код

$string = "Hello &#39; Man";
$string = preg_replace('|&#(\d{1,3});|e', 'chr(\1)', $string);
echo $string; # Hello ' Man

Ещё вопросы

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