我有这个代码。它允许用户搜索file.txt&回答所有的结果。
我想知道是否有办法限制它可以回应的线路数量?我可以接受任何建议,甚至改变代码以不同的搜索方式。我已尝试将其放入数据库中,但文件格式不正确且为300k +行,因此很难对其进行格式化,因此它可以进入数据库。感谢。
$lines = file('file.txt');
$search = $_POST['Search'];
$found = false;
foreach($lines as $line) {
if(strpos($line, $search) !== false) {
$found = true;
echo $line . "<br>";
}
答案 0 :(得分:1)
我建议使用for循环。您可以替换
foreach($lines as $line) {
if(strpos($line, $search) !== false) {
$found = true;
echo $line . "<br>";
}
与
for($i=0, $j = 0; $i <= $maximumLineNumber; $i++) {
if(strpos($lines[$i], $search) !== false && $j <= $maximumEchoNumber) {
$found = true;
$j += 1;
echo $lines[$i] . "<br>";
}
}
答案 1 :(得分:0)
$lines = file('file.txt');
$search = $_POST['Search'];
$count = 0;
$MAX = 50; // Define the maximum number
$found = false;
foreach($lines as $line) {
if(strpos($line, $search) !== false)
{
$found = true;
echo $line . "<br>";
$count++;
if ($count == $MAX) { break; }
}
}
答案 2 :(得分:0)
$max_lines = 30;
foreach($lines as $line_num => $line) {
if(strpos($line, $search) !== false) {
$found = true;
echo $line . "<br>";
}
if($max_lines == $line_num) break;
}