我有一个大型的用户名和电子邮件平面文件,格式如下:
"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)
有任何想法吗?谢谢!
根据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)