2012-03-26 5 views
0

よしは、そのファイル名「search.txt」と、そのファイルの内容を持って言うことができますです:テキストファイルの行を検索し、はい表示]または[いいえPHP

1223 
1245 
3389 
4489 
... 

とあなたがしていますindex.phpで "1223"を検索するとTRUEを返しますが、 "12"を検索した場合(第1行目と第2行目が "12"を含むため2回になる)完全な行に完全に一致していないため、FALSEを返します。

これは私がこれまで持っているものであるが、それは働いていない:

$uid = $_POST['uid']; 
    $searchfile = file_get_contents('search.txt'); 

    if (preg_quote($searchfile, $uid) === false) 
    { 
     echo "NO"; 
    } 
    else 
    { 
     echo "YES"; 
    } 

は、任意の応答をありがとう!

+2

何あなたのアイデア 'preg_quote'を与えたことは文字列を検索します:file()機能を備えた各ラインをループ? – deceze

+0

http://stackoverflow.com/questions/6653045/preg-match-exact-numberこれが役立ちますか?ファイルを配列に渡し、配列を検索します(基本的に)。 –

答えて

2

数字は行またはスペースで区切られているかどうか、非常にわからないが、それは改行でいた場合、その後、次の1つのライナーは動作するはずです:

if(array_search($uid, file('search.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES)) === false) { 
    echo 'no'; 
} else { 
    echo 'yes'; 
} 
0

ファイルが大きくなりすぎていない場合、あなたは可能性

$lines = file('search.txt'); 
$uid = $_POST['uid']; 
$found = false; 

foreach ($lines as $line){ 
    if ($line == $uid) 
     $found = true; 
} 

if ($found) 
    echo 'YES'; 
else 
    echo 'NO'; 
関連する問題