gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 10:58:25 25 4
gpt4 key购买 nike

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

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;
}
}

在该列表一直为 False 之后,我不知道为什么。

提前致谢 :)

最佳答案

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

第一 $boolean = False;$liste = True; ,因此您的输出变量中可能存在潜在的拼写错误。

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

主要问题是fgets将包括 \r\n在文件中每一行的末尾,在比较的字符串变量中不存在。您可以使用 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

关于PHP逐行获取文件并与字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59022615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com