比较CSV和用户输入的PHP
我正在编写一个小脚本,当用户输入他们的ID号时,它将根据外部csv文件进行验证,以检查用户是否存在比较CSV和用户输入的PHP,php,Php,我正在编写一个小脚本,当用户输入他们的ID号时,它将根据外部csv文件进行验证,以检查用户是否存在 $errortext=' '; $sfile = fopen("compch.csv","r"); rewind($sfile); while (!feof($sfile)) { $data2 = fgets($sfile); $splitter2 = explode("|", $data2); if(!in_array($reference,$splitt
$errortext=' ';
$sfile = fopen("compch.csv","r");
rewind($sfile);
while (!feof($sfile)) {
$data2 = fgets($sfile);
$splitter2 = explode("|", $data2);
if(!in_array($reference,$splitter2))
{
$errortext = "Invalid proposal number";
return $errortext;
}
}
此代码的问题在于,如果第一个ID不是用户ID,则循环将被中断,而不是读取下一个条目。
是否有办法编辑循环,使其不断读取ID,如果当前用户ID不存在,则只显示错误消息 如果找到正确的元素,可以使用中断,否则继续:
$errortext = ' ';
$bool = false;
$sfile = fopen("compch.csv","r");
rewind($sfile);
while (!feof($sfile)) {
$data2 = fgets($sfile);
$splitter2 = explode("|", $data2);
if(in_array($reference,$splitter2))
{
$bool = true;
break; //YOu exit the while loop
}
}//End of while loop
if ($bool){
//ID is inside
}else{
$errortext = "Invalid proposal number";
}
您可以使用continue;在一个循环中。。。这将跳过该记录并继续下一个记录。。。只需检查ID是否不存在。事实上我也这么做了。然而,结果与下面相同。它拒绝所有条目或接受所有条目。抱歉,我尝试过,但它拒绝了所有条目,并显示消息“无效提案编号”如果我的数据有助于User1 | 100000 User2 | 100001,那么它的结构就是这样的。这可能是因为每个数据之间都有一条特征线:特征线是字符'\n',它可能会干扰代码的行为:explode('|',$data2)=explode('|','User1 | 100000\n')=数组(0=>'User1',1=>'100000\n')和'100000\n'!='100000'. 尝试在每行的ID后添加分隔符