0

次のようなコードがあります。

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

特定のキー=値のペアが .ini ファイルに存在するかどうかを確認することになっています。.ini ファイルは、1 行に 1 つの KEY=String 値でいっぱいの単なる PHP .ini ファイルです。

問題は、短いキーが長いキー内に存在する場合、行が false ではなく true を返すことです。たとえば、キー/値 PROBLEM=problem が存在し、$key = 'EN' を使用してチェックする場合、$strpos はより長い文字列 'HAPPEN=' 内の 'EN=' と一致するため、ルーチンは true を返します。新しい行の先頭からのみ 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 に答える