4

これはPHP関連の質問です。

私は以下の解決策を広範囲に検索しましたが、私に役立つものは見つかりませんでした。誰かが私を助けてくれたら、とてもありがたいです。

私が持っているアイデアは、「特定の」事前に決定された登録番号がユーザーに与えられた/送信された場合、ログインページにアクセスし、その番号がファイルに存在するログインページを作成して実行することです。ログイン権が許可されました。

たとえば、ユーザーの登録番号が12345で、別の登録番号が123の場合、最初にユーザーの番号が存在するかどうかを検索してから、something()を実行します。

したがって、「123」がすでに存在する場合、「12345」の検索は「234」の場合と同じではないため、特定の番号を検索する必要があります。

違いが生じる場合は、数字の前後に「スペース」があります。

これは既存のファイルにあります。

コード:

<?php 
$filename = 'datafile.txt'; 

// Data file may contain the following number(s) or any other 
// 123 (no) 
// 1234 (match) 
// 12345 (no) 
// 123456 (no) 
// exact match needed to proceed to page fopen($filename); 
$searchfor = '1234'; 

// this needs to be a variable 
// I don't know what the number will be used. 
$file = file_get_contents($filename); 

if (preg_match($file, $searchfor)) {
  echo "Match found. Proceed to the page."; 
} else { 
  echo "Match not found. Try again."; 
} 

fclose($filename); 
?>

ありがとうございました。どんな助けでもありがたいです、乾杯。

フレッド

4

1 に答える 1

4

これらをフラットファイルに保存することは、おそらく私がこれを行う方法ではありませんが、フラットファイルを使用する場合、次の例は問題なく機能するはずです。

$nums = "12345 34 45 12345 23"; # use file_get_contents to load from file
$uNum = 34;

if ( preg_match( "/[^0-9]{$uNum}[^0-9]/", $nums ) ) {
  echo "Access";
} else {
  echo "Denied";
}

文字列の入力に関しては、すべての数値を含むファイルの内容を取得するために$nums使用できます。file_get_contents()

/パターンの開始を示します
[^0-9]パターン内のスペースを任意の数で占有することはできません
{$uNum}ユーザー番号-上記の例では34
[^0-9]パターン内のスペースを任意の数で占有することはできません
/パターンの終わりを示します

基本的に、スペースではなく両側に番号が付いているか、まったくない場合、番号は見つかりません。

于 2012-05-27T03:04:23.707 に答える