Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php-检查值是否在csv文件中_Php_Csv - Fatal编程技术网

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

php-检查值是否在csv文件中,php,csv,Php,Csv,我试图检查两个php值是否在csv文件的一行中 csv: 密码、姓名 最大12345 44444,埃米尔 但是当我的变量是$password=“123”并且在csv文件中是“12345”时,他接受它 但是,我如何检查它是否100%相等?我不明白为什么“123”就足够了 $search = $name; $search2 = $password; $lines = file('Benutzer.csv'); $line_number = false; $line_nu

我试图检查两个php值是否在csv文件的一行中

csv:

密码、姓名

最大12345

44444,埃米尔

但是当我的变量是$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');
   } 
在字符串中查找子字符串。所以,首先要做的事情”

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

strpos('12345','123')
或者真的
1,12123123412345
都将返回位置0。现在,当与
false
相等时,您基本上得到:

0==`false`

这当然是正确的,因为
0
一个值将被强制转换为
false
。作为@u\u mulder,使用完整类型的相等运算符
==
可以解决这个问题,但仍然不能解决您的问题。您需要的是
strcmp
,它将返回
0(false)
仅当字符串完全相同,并且可以按照您的需要使用。您也可以在字符串之间使用
==
==
,因为您不关心“少/多”字符串

if( $line === $search )

使用
==
strcmp
而不是
strpos
if( $line === $search )