0

我有一些如下所示的代码:

if (strpos($stringt, $key . '=') === false) {
    ...some code...
}

并且应该检查 .ini 文件中是否存在特定的 key=value 对。.ini 文件只是一个 PHP .ini 文件,其中包含 KEY=String 值,每行一个。

问题是,如果一个较短的键恰好出现在一个较长的键中,则该行将返回 true 而不是 false。例如,如果键/值 PROBLEM=problem 存在并且您使用:$key = 'EN' 进行检查,则例程将返回 true,因为 $strpos 将匹配较长字符串 'HAPPEN=' 中的 'EN='。我怎样才能让 strpos 只从新行的开头匹配一个键(我试过 '\n' . $key . '=' 但这不起作用)?

4

2 回答 2

2

我只会使用 PHP 的内置 INI 解析器:

http://php.net/manual/en/function.parse-ini-file.php

print_r(parse_ini_file('yourinihere.ini'));
于 2012-04-24T18:55:05.257 回答
2
if (strpos($stringt, "\n" . $key . '=') === false) {
    ...some code...
}

你必须使用"\n"而不是'\n'

于 2012-04-24T18:59:26.457 回答