Php 回音结果进入循环
我有一个html搜索框,它使用下面的脚本,但是看起来echo输出是循环的,或者显示我使用fopen的.txt文件的所有结果。我试图在echo的末尾添加exit,但无论我使用搜索框搜索什么,它都只能获取content.txt中的第一行。我试图让它只显示搜索结果 以下是我一直在研究的代码:Php 回音结果进入循环,php,echo,Php,Echo,我有一个html搜索框,它使用下面的脚本,但是看起来echo输出是循环的,或者显示我使用fopen的.txt文件的所有结果。我试图在echo的末尾添加exit,但无论我使用搜索框搜索什么,它都只能获取content.txt中的第一行。我试图让它只显示搜索结果 以下是我一直在研究的代码: <?php $q = $_REQUEST["q"]; $f = fopen("content.txt", "r"); while (($line = fgets($f)) !== FALSE) {
<?php
$q = $_REQUEST["q"];
$f = fopen("content.txt", "r");
while (($line = fgets($f)) !== FALSE) {
if (strstr($line, $q)) {
echo "<li>Found $line</li>";
} else {
echo "<p>Nothing found.</p>";
}
}
?>
像这样试试
<?php
$q = $_REQUEST["q"];
$f = fopen("test.txt", "r");
$found = false;
while (($line = fgets($f)) !== FALSE) {
if (strstr($line, $q)) {
echo "<li>Found $line</li>";
$found = true;
}
}
if (!$found){
echo "<p>Nothing found.</p>";
}
?>
PHP有一个内置的模式搜索功能。你可以在这里找到答案 由于您正在尝试获取文本文件中找到的所有结果,因此创建一个空白字符串,如果结果存在,则在循环中对其进行concat,否则将返回结果,否则将找不到结果
<?php
$str='';
$q = $_REQUEST["q"];
$f = fopen("content.txt", "r");
while (($line = fgets($f)) !== FALSE) {
if (strstr($line, $q)) {
$str.="<li>Found $line</li>";
}
}
if($str==''){
echo "<p>Nothing found.</p>";
}else {
echo $str;
}
?>
您可以使用if语句而不是while语句loop@akshaykhale嗯,我刚刚测试过。似乎只能得到txt文件中第一行的结果。请检查答案。他们中至少有一个会回答你的问题。如果他们不工作。在每个答案下面的评论中添加您收到的错误。