2014-03-03 57 views
-1

我有一點問題。

我有一個txt文件,我可以寫用戶名。 那就好!

但即時通訊試圖通過用戶輸入($ _POST ['username'])搜索txt文件。 我得到的用戶並不是所有的時間都存在..

任何人都可以給我一些提示?

我的txt文件,包含:
聯繫
謝爾頓
竹篙

下面是代碼:0而不是1。因此,如果用strpos開始

$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.."; 
    } 

} 
} 
+0

看起來像一個分貝給我的作業 – 2014-03-03 02:13:19

+0

這只是一個小實驗,關於如何從用戶帖子讀取文本文件。 – Spoofy

+0

我也許會使用'file()'然後'in_array()'我自己 – 2014-03-03 02:22:02

回答

0

字符串位置位置是0,它將等於假。

您的if語句簡單的解決方法可以幫助

if(strpos($content, $user) !== FALSE){

PHP strpos

這個函數可以返回布爾值FALSE,但也可能返回的結果爲FALSE的非布爾值。有關更多信息,請閱讀布爾部分。使用===運算符來測試此函數的返回值。

+0

爲了100%的準確性,然後檢查布爾值false而不是:'if(strpos($ content,$ user)!== false)' – MonkeyZeus

+0

可以,我剛進入習慣在幾年前檢查它是> -1 –

+0

我試過如果(strpos($ content,$ user)!== false)但我仍然得到「nope ..」 – Spoofy

-1

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

+0

謹慎解釋匿名downvoter? – ElefantPhace

+0

可能因爲這只是您提供一些代碼而不是結構化的答案或信息幫助。如果文件只包含php,最好避免關閉php標籤,以避免空白注入。您的答案也會取代OP的代碼,並且不會幫助他們使用原始代碼。 –