0

PHP を介して自分のサイトにアップロードされているすべてのファイルを検証したいと考えています。ファイルの内容を比較するために正規表現を使用していますが、期待どおりに機能していないようです。1 行に 1 語のみのファイルを受け入れたいです。

EXPECTED INPUT:
HP34930
HP09099
HP98899

UNACCEPTABLE INPUT:
HP89980 HP98798 HP09232
some other text
HP58089

これが私のコードです:

$texthandle = file($_FILES["textfile"]["tmp_name"]);
foreach ($texthandle as $textline)
{
    if (!preg_match("/(HP\d+){1}/", $textline))
    {
    echo "Incorrect file format. Please provide a text file with 1 term per line.";
            exit(0);
    }       
}

これが私が望む方法で検出されない理由を誰かが提案できますか?

私も試してみました

if (!preg_match("/^(HP\d+){1}$/", $textline))

しかし、期待どおりに機能していません。

ご協力いただきありがとうございます!

4

1 に答える 1