我试图检查两个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');
}
答案 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 )