Преобразование ASCII в открытый текст в PHP

я очищаю некоторые сайты и имею текст ASCII, который я хочу преобразовать в обычный текст для хранения в БД. Например я хочу!--3-->

I have got to tell anyone who will listen that this is
one of THE best adventure movies I've ever seen.
It's almost impossible to convey how pumped I am
now that I've seen it.

преобразовано в

I have got to tell anyone who will listen that this is
one of THE best adventure movies I've ever seen. It's
almost impossible to convey how pumped I am now that
I've seen it.

я погуглил пальцы в крови, какая-нибудь помощь?

1 ответов


можно использовать html_entity_decode:

echo html_entity_decode('...', ENT_QUOTES, 'UTF-8');

несколько замечаний:

  • обратите внимание, что похоже, что вы действительно хотите конвертировать из HTML-кодированной строки(с такими объектами, как ) в ASCII AKA открытый текст.

  • этот пример преобразует в UTF-8 который является ASCII-совместимой кодировкой символов для всех символов ASCII (т. е. с кодами char ниже 128). Если вы действительно хотите простой ASCII (таким образом, потеряв все акцентированные символы и символы с иностранных языков) вы должны удалить все оскорбительные символы отдельно.

  • последний аргумент ('UTF-8') необходим для сохранения совместимости с различными версиями PHP, так как значение по умолчанию изменилось с PHP 5.4.0.

обновление: пример с вашим текстом в ideone.

Update2: изменен ENT_COMPAT на ENT_QUOTES по предложению @Daan.