Восстановить сбежавшие персонажи - PullRequest
0 голосов
/ 01 сентября 2009

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

Ответы [ 3 ]

4 голосов
/ 01 сентября 2009

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

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

echo html_entity_decode(''', ENT_QUOTES);
2 голосов
/ 01 сентября 2009

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

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

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

s = Replace(s, "'", "'")
s = Replace(s, "&lt;", "<")
s = Replace(s, "&gt;", ">")
s = Replace(s, "&amp;", "&")
0 голосов
/ 01 сентября 2009

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

$string = "Hello &#39; Man";
$string = preg_replace('|&#(\d{1,3});|e', 'chr(\1)', $string);
echo $string; # Hello ' Man
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...