如果只有子字符串为true,则在php中验证字符串

如果只有子字符串为true,则在php中验证字符串,php,string,substring,Php,String,Substring,如何在PHP中验证子字符串是否为true?例如,如果user1在字符串中,则应为true 文本文件: user1:pass1 user2:pass2 user3:pass3 if(in_array($_SERVER['user1'] . "\r\n", $textfile)){ //not the way want this to be true printf("Ok user1 is in this row somewhere"); } 我建议不要使用这种容易出错或滥用的身份验证系统。使

如何在PHP中验证子字符串是否为true?例如,如果user1在字符串中,则应为true

文本文件:

user1:pass1

user2:pass2

user3:pass3

if(in_array($_SERVER['user1'] . "\r\n", $textfile)){ //not the way want this to be true
  printf("Ok user1 is in this row somewhere");
}

我建议不要使用这种容易出错或滥用的身份验证系统。使用其他系统,如ACL或数据库用户/密码哈希检查。

如果您使用此系统进行身份验证;为了你的用户考虑一种不同的(更安全的)方法。顺便说一句,对OP的回复是正确的,PHP代码中几乎没有任何内容能够像预期的那样工作

但是,如果想法是通过key$arr['key']使用数组的值来查找不需要保护的配置设置(基本上全世界都可以看到),那么可以使用parse_ini_file()和friends。再次强调:对于真正敏感的数据,这不是一个好主意


编辑:另外,对行尾字符使用PHP\u EOL常量可能是一个好主意,而不是假设“\r\n”。

如上所述,就用户身份验证而言,这不是一个好方法。如果你想要一些基本的东西,看看使用或至少是一些东西

也就是说,你可以使用

注意,这假设每一行的格式为“username:password”,没有其他内容;您可能需要根据您的格式精确调整与行的匹配方式。通过此验证的示例文件将有一行,如

foo:bar

说真的,看看说明书。我不介意初学者的问题,但这段代码是如此的错误,我不相信你会付出任何努力。@coronatus任何编程问题都是有效的,并且没有php手动输入的身份验证方法。你为什么要在用户名后加换行符?我在文本文件中没有看到它们。你能打印($textfile)吗?此外,用户名是$\u服务器['user1']的键还是值?
foo:bar