限制行数搜索echos PHP

时间:2015-01-02 01:24:40

标签: php search foreach

我有这个代码。它允许用户搜索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>";
        }

3 个答案:

答案 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;
}