Согласно документации PHP на stripslashes ()
, она
не заключает в кавычки строку в кавычках.
Что означает, что онав основном удаляет все обратные слэши, которые используются для экранирования символов (или последовательностей Юникода).При их удалении у вас практически нет шансов быть полностью уверенными в том, что любая последовательность, как "u0024"
, должна была быть сущностью Юникода, ваш пользователь мог просто ввести ее.
Кроме того, у вас возникнут некоторые проблемыпри использовании stripslashes ()
для значения JSON, которое содержит экранированные кавычки.Рассмотрим следующий пример:
{
"key": "\"value\""
}
Это станет недействительным при использовании stripslashes ()
, потому что тогда оно будет выглядеть так:
{
"key": ""value""
}
Что не может быть проанализировано, поскольку оно недопустимоОбъект JSON.Если вы не используете stripslashes ()
, все escape-последовательности будут преобразованы анализатором JSON, и перед выводом (декодированного) объекта JSON на клиент PHP автоматически декодирует (или «конвертирует») последовательности Unicode, которые могут содержать ваши данные..
Вывод: Я бы предложил не использовать stripslashes ()
при работе с сущностями JSON, так как это может сломать вещи (как видно из предыдущего примера, но также и в вашей проблеме).