Я сохранил некоторые данные в базе данных с помощью mysql_real_escape_string()
, поэтому одиночные кавычки экранируются как '
. Он выглядит нормально в браузере, но как я могу преобразовать его обратно в одиночную кавычку, когда я сохраняю текст в txt файле?
Обратите внимание, что mysql_real_escape_string()
делает не поворот apostrophes '
в '
Только функции, ориентированные на HTML, поэтому вы должны иметь вызовы htmlentities()
где-то в вашем script.
Что касается вашего вопроса, то функция, которую вы ищете, html_entity_decode()
echo html_entity_decode(''', ENT_QUOTES);
Вот почему вы не должны хранить закодированный текст в базе данных. Вы должны были сохранить его в оригинальном формате и закодировать его при его отображении.
Теперь вам нужно проверить, какие символы выполняет функция, и записывать замены строк, которые преобразуют их обратно, в обратном порядке.
Пример псевдокода:
s = Replace(s, "'", "'")
s = Replace(s, "<", "<")
s = Replace(s, ">", ">")
s = Replace(s, "&", "&")
Это просто значение ascii "", используйте chr, чтобы вернуть его персонажу. Здесь код
$string = "Hello ' Man";
$string = preg_replace('|&#(\d{1,3});|e', 'chr(\1)', $string);
echo $string; # Hello ' Man
'
на'
.