将 PHP 变量与文本文件中的值进行比较

Comparing PHP variable to values in text file

我正在尝试验证文本文件中是否存在 php 变量值,然后回显该值。使用下面的代码,只有当变量中的值等于文本文件中的最后一个值时,我的 if 语句才为真。如果变量中的值等于第一个、第二个、第三个等值,则 if 语句为假。

这是我的代码:

$lines = file("file.txt");
$value = $_GET['value'];

    foreach ($lines as $line) {
        if (strpos($line, $value) !== false) {
            $output = $line;
        } else {
            $output = "Sorry, we don't recognize the value that you entered";
        }
    }

如评论中所述,您使用行数据或错误消息覆盖每个循环的变量。

   foreach ($lines as $line) {
        if (strpos($line, $value) !== false) {
            $output[] = $line;
        }
    }

    if(empty($output)){
      echo "Sorry, we don't recognize the value that you entered";
    } else {
      print_r($output);
    }

另一个答案更正了您的代码,但是要用更少的代码匹配 1 个或多个:

$output = preg_grep('/'.preg_quote($value, '/').'/', $lines);

要将现有方法仅用于 1 个匹配项,则 break 退出循环 and/or 在之前定义 "Sorry..." 输出:

$output = "Sorry, we don't recognize the value that you entered";

foreach ($lines as $line) {
    if (strpos($line, $value) !== false) {
        $output = $line;
        break;
    }
}