Я написал скрипт 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);
Вы можете ломаться, когда вам больше не нужны данные. В этом примере, когда count($rows)>100
while(!feof($file)) {
$line = fgets($file);
$date = explode("Draw Date",$line);
array_push($rows,$date[0]);
if (count($rows)>100)
break;
}
Проблема в том, что ваше условие выполняется только после того, как вы прочитали до конца файла. Если вы хотите получить только первые N строк, вам нужно будет изменить это условие. Что-то вроде этого может помочь вам начать:
$lineCountLimit = 5;
$currentLineCount = 0;
while($currentLineCount < $lineCountLimit)
{
$line = fgets($file);
$date = explode("Draw Date",$line);
array_push($rows,$date[0]);
$currentLineCount++;
}
Попробуйте следующий рецепт, чтобы загрузить только часть файла, например, 10 Кбайт, затем разделите на строки и проанализируйте их. Как частично загрузить удаленный файл с помощью cURL?
$string .= $line; $sizeInKB = number_format(strlen($string) / 1024, 2);
$ sizeInKB будет содержать текущую загруженную сумму. Вот еще расчеты для разных единиц, кроме КБ