PHP использует fopen для загрузки TXT-файла через URL. Как ограничить сумму для скачивания?

0

Я написал скрипт php, который анализирует этот текстовый файл

http://www.powerball.com/powerball/winnums-text.txt

Все хорошо, но я хочу контролировать количество загружаемых файлов, т.е. Мне не нужен каждый отдельный результат, возможно, максимум первый. 5. В настоящий момент я загружаю весь файл (который является пустой тратой памяти/полосы пропускания).

Я видел, что у fopen есть параметр, который должен был его ограничить, но любое значение, которое я разместил, не влияет на объем загружаемого текста.

Это можно сделать? Спасибо за чтение.

Ниже приведен небольшой фрагмент кода, который загружает файл.

<?php

$file = fopen("http://www.powerball.com/powerball/winnums-text.txt","rb");
$rows = array();

    while(!feof($file))
    {
        $line = fgets($file);
        $date = explode("Draw Date",$line);
        array_push($rows,$date[0]);

    }


fclose($file);

?>

Спасибо всем, это код, который просто загружает первую строку результатов

   while(!feof($file))
        {
            $line = fgets($file);
            $date = explode("Draw Date",$line);
            array_push($rows,$date[0]);

            if(count($rows)>1)
            {
                break;
            }

        }
fclose($file);
Теги:

3 ответа

1
Лучший ответ

Вы можете ломаться, когда вам больше не нужны данные. В этом примере, когда count($rows)>100

 while(!feof($file)) {
        $line = fgets($file);
        $date = explode("Draw Date",$line);
        array_push($rows,$date[0]);

       if (count($rows)>100)
          break;

  }
1

Проблема в том, что ваше условие выполняется только после того, как вы прочитали до конца файла. Если вы хотите получить только первые N строк, вам нужно будет изменить это условие. Что-то вроде этого может помочь вам начать:

$lineCountLimit = 5;
$currentLineCount = 0;
while($currentLineCount < $lineCountLimit)
{
    $line = fgets($file);
    $date = explode("Draw Date",$line);
    array_push($rows,$date[0]);
    $currentLineCount++;

}
0

Попробуйте следующий рецепт, чтобы загрузить только часть файла, например, 10 Кбайт, затем разделите на строки и проанализируйте их. Как частично загрузить удаленный файл с помощью cURL?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню