php-用户从表单中搜索TXT文件$\u post
我有点小问题 我有一个txt文件,我可以写用户名。 没关系 但是我试图通过用户输入($\u POST['username'])搜索txt文件。 我的用户并不总是存在 有人能给我一些建议吗 我的txt文件包含:php-用户从表单中搜索TXT文件$\u post,php,forms,file,post,input,Php,Forms,File,Post,Input,我有点小问题 我有一个txt文件,我可以写用户名。 没关系 但是我试图通过用户输入($\u POST['username'])搜索txt文件。 我的用户并不总是存在 有人能给我一些建议吗 我的txt文件包含: 管理员 谢尔顿 佩妮 代码如下: $user = $_POST['username']; function CreateAccount($user){ if($_POST['reg']){ $file = 'test.txt'; $data = $user ."\n
管理员
谢尔顿
佩妮 代码如下:
$user = $_POST['username'];
function CreateAccount($user){
if($_POST['reg']){
$file = 'test.txt';
$data = $user ."\n";
fopen($file, 'a');
file_put_contents($file, $data, FILE_APPEND);
}
}
function userSearch($user){
if($_POST['read']){
$file = 'test.txt';
$searchUser = $user;
fopen($file, 'r');
$content = file_get_contents($file);
if(strpos($content, $user)){
echo "exist";
}else{
echo "nope..";
}
}
}
strpos
的字符串位置从0开始,而不是从1开始。因此,如果位置为0,则等于false
对if语句的简单修复可能会有所帮助
if(strpos($content,$user)!==FALSE){
此函数可能返回布尔值FALSE,但也可能返回计算结果为FALSE的非布尔值。有关详细信息,请阅读布尔值部分。使用===运算符测试此函数的返回值
t.txt: 管理
谢尔顿
伦纳德 t.php
<?php
$file = "t.txt";
$name = "Sheldon";
$string = file_get_contents($file);
$array = file($file, FILE_IGNORE_NEW_LINES);
if(in_array($name,$array)){
echo "found ";
}else{
echo "nope ";
}
if(strstr($string,$name)){
echo "found ";
}else{
echo "nope ";
}
?>
输出:
found-found
看起来像是db-to-meth的工作。这只是一个关于如何通过用户帖子读取文本文件的小实验。我可能会使用file()
,然后在数组中使用
myself我也会使用Dagon的方法,但在这种情况下为什么不使用strstr()呢?你也不必在文件获取内容之前打开文件以获得100%的准确度,然后检查布尔值是否为false:if(strpos($content,$user)!==false)
可以做到,我几年前就养成了检查的习惯>-1我尝试了if(strpos($content,$user)!==false),但我仍然得到“不…”以这个为例。我用文件中的内容的字符串表示形式替换了读取的文件。感谢您的回答!at字符串表示形式可以很好地使用,但我希望它与用户从表单中发布的名称一起使用。可能是因为这只是您提供了一些代码,而不是结构化的答案或信息另外,如果文件只包含php,最好不要关闭php标记,以避免空白注入。您的答案也会替换OP的代码,并且不会用原始代码帮助他们。