PHP在CSV文件中查找字符串

Ed.*_*Ed. 11 php arrays

我有一个大型的用户名和电子邮件平面文件,格式如下:

"username", "email"
"username", "email"
"username", "email"
Run Code Online (Sandbox Code Playgroud)

等等...

我需要接收电子邮件并搜索用户名,但由于某种原因,它不会返回结果.如果我在对面搜索,它就有用.

$string = "user_email@something.com";
$filename = "user_email.txt";
        $h = fopen("$filename","r");
        $flag=0;

        while (!feof ($h)) {
            $buffer = fgets($h);
            $thisarray = split(",", $buffer);

            if ($string == str_replace('"','', $thisarray[1])) { 
                $i = 1;
                $i++;
                echo '<td bgcolor="#CCFFCC"><b style="color: maroon">' . str_replace('"','',$thisarray[0]). '</b></td>';

                }   
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢!

tda*_*ers 9

根据reko_t的建议:使用fgetcsv将csv的各行读入数组,直到找到第二个元素与搜索项匹配的行.然后第一个元素是用户名.就像是:

<?php
function find_user($filename, $email) {
    $f = fopen($filename, "r");
    $result = false;
    while ($row = fgetcsv($f)) {
        if ($row[1] == $email) {
            $result = $row[0];
            break;
        }
    }
    fclose($f);
    return $result;
}
Run Code Online (Sandbox Code Playgroud)