【问题标题】:Wrong output of .ini file after parsing解析后.ini文件输出错误
【发布时间】:2016-07-27 07:38:44
【问题描述】:

我尝试使用 php 的 ini 文件获取值,如下所示:

[hash] 
key = yFrTYcqH116ZL|XOJnMCLrLUf@RfqrNB
iv = 35jL|HRNSDhn38T39MK9wdN26CkcYRKT

ini 文件是使用 python 脚本创建的,该脚本选择字符串的随机字符。

字符串如下所示:
string = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789=@#|'



最后我尝试解析ini文件并获取它的值:

$key_ini = parse_ini_file("..\key.ini");
$key = $key_ini['key'];
$iv = $key_ini['iv'];

echo $key;
echo '<br>';
echo $iv;

输出很奇怪:

0
35

可能是我在字符串中使用了无效字符还是ini文件格式错误?

提前致谢

【问题讨论】:

  • 可以改一下ini文件吗?
  • @frz3993 它由 python 代码生成。但是,是的,我可以
  • 我已经发布了我的答案。

标签: php parsing output ini


【解决方案1】:

.ini文件中,用双引号""表示字符串,这样会不加修改地解析。要解决您的问题,您可以双引号 .ini 文件中的值,例如:

[hash] 
key = "yFrTYcqH116ZL|XOJnMCLrLUf@RfqrNB"
iv = "35jL|HRNSDhn38T39MK9wdN26CkcYRKT"

或者,您可以告诉parse_ini_file() 使用INI_SCANNER_RAW 模式,例如:

$key_ini = parse_ini_file("..\key.ini", false, INI_SCANNER_RAW);

尽管出于某些原因,我个人更喜欢双引号。

【讨论】:

  • 谢谢你这工作非常好。顺便说一句,我不得不修改字符串。我不得不删除“
猜你喜欢
  • 2017-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-09
相关资源
最近更新 更多