Я хотел бы сохранить определенную строку в файле конфигурации, которая должна быть проанализирована функцией 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 гарантирует, что закодированная строка содержит только буквенно-цифровые символы и +=/ . Это может быть оптимальным для кодирования двоичных данных, но не сохраняет читаемость.