У меня есть строка, хранящаяся в массиве: But I Don't
и когда я печатаю его на своей веб-странице, я получаю: But I Don’t
Я пробовал htmlentities()
, htmlspecialchar()
, оба с включенным ENT_QUOTES
.
Я понимаю, что могу заставить свою функцию выполнять замену строки каждый раз, когда я печатаю, но, конечно же, в PHP есть способ, с помощью которого я могу просмотреть свой массив, распечатать каждую строку и преобразовать все специальные символы (не только кавычки) в правильные HTML?
Я просто озадачен тем, что некоторые апострофы не прошли очистку строк.
РЕДАКТИРОВАТЬ
Оказывается, это все-таки была обратная галочка, поэтому строка была такой: «Но я не делаю».
Есть ли простой способ дезинфицировать это и в PHP?
ENT_QUOTES
не решит эту конкретную проблему. Первое, что вам нужно выяснить, это исходная кодировка. Это не UTF-8? Попробуйте форсировать UTF-8 с помощьюhtmlentities($string, ENT_QUOTES, 'UTF-8');
- person hw.   schedule 07.06.2013byte order mark
, более известная какThe BOMb
. (бом) - проверьте свой закодированный файл, посмотрите, является ли он UTF-8 (с отметкой порядка байтов или без нее). Никогда не знаешь. - person Funk Forty Niner   schedule 07.06.2013It=’
) для вас и нашел это: stackoverflow.com/questions/2292004/ - person Funk Forty Niner   schedule 07.06.2013till the cows come home
. Нужно позаботиться оat the source
. - person Funk Forty Niner   schedule 07.06.2013infamous TICK
, каждый раз он будет выбивать из тебя БАЙТ! Рад, что вы нашли свойbug
;-) Хорошо, я запомню это как возможныйanswer
в следующий раз. - person Funk Forty Niner   schedule 07.06.2013"Is there an easy way to sanitize this in PHP as well?"
, я не смог найти ничего конкретного по этому вопросу. Вы могли бы поймать его у ворот и использоватьpreg_replace
илиstr_replace
в крайнем случае, я полагаю. - person Funk Forty Niner   schedule 07.06.2013