PHP 逐行获取文件并与字符串进行比较



我有一个文件,它基本上是该格式的名称列表:

name.lastname
name.lastname
name.lastname
myname.mylastname
name.lastname

我想检查我拥有的字符串是否等于其中一个名称(带点(。

这就是我已经尝试过的:


$username = "myname.mylastname"; 
$boolean = False; 
$handle = fopen("thelist.txt","r");
while (($line = fgets($handle)) !== false) {
if ($line === $username){
$liste = True; 
}
}

在那份名单之后,我一直是假的,我不知道为什么。

提前致谢:)

我看到了一些潜在的问题。

首先$boolean = False;$liste = True;,因此输出变量中可能存在拼写错误。

第二个问题是thelist.txt不是绝对的道路。因此,文件资源可能加载失败。强烈建议您使用文件资源(如/full/path/to/file__DIR__ . '/path/to/file'(的绝对路径。

主要问题是fgets将在文件中每行的末尾包含rn,这在比较的字符串变量中不存在。可以使用trim删除无关的行尾和空格,以便与字符串变量进行比较。

示例:https://3v4l.org/4VG4D

$username = "myname.mylastname"; 
$liste = false; 
$handle = fopen("thelist.txt", 'rb');
while (false !== ($line = fgets($handle))) {
if (trim($line) === $username){
$liste = true;
break; //stop at first match
}
}
fclose($handle);
var_dump($liste); //true

相关内容

  • 没有找到相关文章

最新更新