PHP:转义 .ini 文件中的非法字符

Posted

技术标签:

【中文标题】PHP:转义 .ini 文件中的非法字符【英文标题】:PHP: Escape illegal chars in .ini-files 【发布时间】:2011-02-01 23:49:18 【问题描述】:

parse_ini_file 上的文档指出您不能在值中使用这些字符 |&~![()^"。有什么办法可以逃避这些字符吗?我需要使用它们。使用 \ 进行正常转义似乎不起作用。

【问题讨论】:

键需要这些字符的任何原因,尤其是 &? 我希望你这样做不是为了安全。 【参考方案1】:

manual 表示这些字符不能在 key 中使用——与 value 相反。要在值中使用它们,请将字符串双引号。

【讨论】:

"Characters |&~![()^" 不能在键中的任何地方使用,并且在值中具有特殊含义。将 () 放在双引号字符串值中。 双引号呢? 如果双引号字符串跨越多行,则它们的工作方式不同 - 然后,它们就像不带引号的字符串一样工作,只是使用换行符【参考方案2】:

尝试对scanner_mode 使用INI_SCANNER_RAW(来自同一文档):

parse_ini_file ( $filename, true, INI_SCANNER_RAW );

【讨论】:

如果您碰巧解析了自己的 .ini 文件以供自己使用,这可能会起作用。这将不包括您更改由其他代码(包括在 php 启动时读取的 .ini)使用的 .ini 的情况。

以上是关于PHP:转义 .ini 文件中的非法字符的主要内容,如果未能解决你的问题,请参考以下文章

java编程中出现的错误“非法字符:\56288”是啥意思?

501方法未实现 - URLDecoder:转义(%)模式中的非法十六进制字符 - 对于输入字符串:“u2”

转义非法XML字符

用freemarker 生成word,打开word xml字符非法!这是啥原因?

JAVA编译时提示出现非法字符

带有 JSP 的 JDBC 连接字符串 SQL Server 导致“非法转义字符”错误