How to escape special characters in a file parsed

2019-01-28 10:57发布

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?

1条回答
老娘就宠你
2楼-- · 2019-01-28 11:30

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.

查看更多
登录 后发表回答