将 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;
}
}
我正在尝试验证文本文件中是否存在 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;
}
}