Я хотел бы сохранить определенную строку в файле конфигурации, которая должна быть проанализирована функцией PHP parse_ini_file()
. Однако эта строка содержит некоторые специальные символы (с кодами типа 0x2C
или 0x3D
), которые необходимо каким-то образом закодировать. Есть ли способ написать специальный символ с шестнадцатеричным кодом в таком файле?
Правильный способ избежать значений INI заключить их в "double quotes"
. Если ваша строка не содержит двойных кавычек, вы можете использовать ее в качестве значения, заключенного в двойные кавычки.
Сбрасывание одиночных кавычек с обратной косой чертой, похоже, работает до тех пор, пока в значении нет двух последовательных двойных кавычек, согласно http://php.net/manual/en/function.parse-ini-file.php#100046
Если вы хотите сделать свое собственное побег, вы, безусловно, можете:
htmlspecialchars
/ htmlspecialchars_decode
escapes <
, >
, &
and "
.
htmlentities
/ html_entitity_decode
будет очень агрессивно (но также очень безопасно) с HTML-объектами
urlencode
/ urldecode
избежит всех специальных символов, кроме _-~.
,
base64_encode
/ base64_decode
гарантирует, что закодированная строка содержит только буквенно-цифровые символы и +=/
. Это может быть оптимальным для кодирования двоичных данных, но не сохраняет читаемость.