I'd like to keep a certain string in a configuration file, that is to be parsed by PHP parse_ini_file()
function. However, this string contains some special characters (with codes like 0x2C
or 0x3D
) that need to be encoded in some way. Is there any way to write a special character with a hex code in such a file?
The proper way to escape INI values is to enclose them in "double quotes"
. If your string doesn't contain double quotes, you can use it in as a value enclosed in double quotes.
Escaping single quotes with a backslash seems to work as long as there are not two consecutive double quotes in the value, as per http://php.net/manual/en/function.parse-ini-file.php#100046
If you want to do your own escaping, you certainly can:
htmlspecialchars
/ htmlspecialchars_decode
escapes <
,>
,&
and "
.
htmlentities
/ html_entitity_decode
will escape very aggresively (but also very safely) to HTML entities
urlencode
/ urldecode
will escape all special characters except _-~.
.
base64_encode
/ base64_decode
will ensure the encoded string contains only alphanumeric characters and +=/
. This might be optimal for encoding binary data but doesn't preserve readability.
来源:https://stackoverflow.com/questions/13306821/how-to-escape-special-characters-in-a-file-parsed-by-php-parse-ini-file-function