php - 检查值是否在csv文件中

时间:2016-12-25 12:41:05

标签: php csv

我试图检查两个php值是否在csv领域的一行中。

CSV:

  

密码,名称

     

12345,max

     

44444,emil

但是当我的变量是$ password =“123”并且在csv文件中它的“12345”时他接受了它。

但是,我如何检查其100%是否等于?我不明白为什么“123”就足够了?

$search      = $name;
$search2     = $password;
$lines       = file('Benutzer.csv');
$line_number = false;
$line_number2 = false;

while (list($key, $line) = each($lines) and !$line_number) {

$line_number = (strpos($line, $search) !== FALSE );
$line_number2 = (strpos($line, $search2) !== FALSE );

}

if($line_number and $line_number2 ){
header('Location: alert_anmelden_erfolgreich.php');
 }
  else{
    header('Location: alert_anmelden_NICHT_erfolgreich.php');
   } 

1 个答案:

答案 0 :(得分:0)

strpos在字符串中查找子字符串。首先要做的事情是"

strpos('12345','345')

将返回2,因为子字符串从该索引开始存在。在你的情况下:

strpos('12345','123')

或者真的1,12,123,1234,12345都会返回0位置。现在,当你像false那样等同于你实际上得到的时候:

0==`false`

这当然是正确的,因为0被转换为false。作为@u_mulder,评论使用完整类型相等运算符===可以解决这个问题,但仍然无法解决您的问题!你想要的是strcmp,只有当字符串相同时才会返回0(false),并且可以按照你想要的方式使用。您也可以在字符串之间使用=====,因为您不关心“少/多”'字符串。

if( $line === $search )