0

リモートファイルを開いてそのコンテンツをcURLライブラリで取得する機能があります。次に、関数はファイルの内容を含む配列を返します。

in_array次に、関数を使用してその特定の値が配列に存在するかどうかを確認すると、値が存在するにもかかわらず、常に存在しないことが示されます。

コードとリモートファイルの内容は次のとおりです。

function getCountry($file) {
    $fop = curl_init($file);
    curl_setopt($fop, CURLOPT_HEADER, 0);
    curl_setopt($fop, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($fop);
    curl_close($fop);
    $fcontent = explode("\n", $result);
    return $fcontent;
}

$file = "http://localhost/countries.txt";
$countries = getCountry($file);

if (in_array('italy', $countries)) {
    echo "Exists";
} else {
    echo "Not exists";
}

リモートファイルの内容ではcountries.txt、行内のすべての文または単語は次のようになります。

spain
italy
norway
canada
france

前に述べたように、値が存在する場合でも、常に存在しないことが示されます。

4

2 に答える 2

1

ファイルに CRLF があるかどうかわからない場合は、代わりに次のようにexplode()使用できます。preg_split()

return preg_split('/\r?\n/', $result);

trim()または、各結果に適用します。

return array_map('trim', explode("\n", $result));

後者は、常に適切であるとは限らない先頭と末尾のスペースとタブも削除します。

于 2013-05-03T17:18:47.157 に答える