, :-)

жный дубликат:
Получение одной строки в огромном файле с помощью PHP

У меня есть текст файла с чем-то вроде 200 строк, и я хочу прочитать определенную строку из этого текстового файла. как я могу это сделать?

Спасибо.

 John Parker17 янв. 2011 г., 22:56
Пожалуйста, найдите существующие вопросы / ответы, прежде чем отправлять новый вопрос.

Ответы на вопрос(3)

Решение Вопроса

Непроверенные.

function getline($file, $linenum, $linelen = 8192) {
    $handle = fopen($file, "r");

    if ($handle) {
        while (!feof($handle)) {
            $linenum -= 1;
            $buffer = fgets($handle, $linelen); // Read a line.
            if (!$linenum) return $buffer;
        }
        fclose($handle); // Close the file.
    }

    return -1;
}
 orlp17 янв. 2011 г., 23:02
Ааааа, кавычки и @ были ошибкой, потому что я скопировал базовый код откуда-то :)
 orlp17 янв. 2011 г., 23:06
добавленной$linelen параметр.
 John Parker17 янв. 2011 г., 23:00
Подавить ошибки на fopen и затем предполагать, что все хорошо - классно. (Также любите знать, для чего нужны кавычки вокруг "$ file" в строке fopen.)

$file = new SplFileObject('file.txt');
$file->seek($lineNumber); // zero based
echo $file->current();

маркировка CW, потому что миддапарка нашла дубликат

продолжайте чтение строк из файла, пока не получите нужный файл (последняя строка гарантирует, что мы вернем false, если мы не нашли нужную строку.

function getLine($file, $lineno)
{
    $line=false;
    $fp=fopen($file, 'r');
    while (!feof($fp) && $lineno--)
    {
        $line=fgets($fp);
    }
    fclose($file);
    return ($lineno==0)?$line:false;

}
 John Parker17 янв. 2011 г., 23:02
Продолжайте - добавьте туда проверку is_resource ($ fp) - вызнаю, что вы хотите, :-)

Ваш ответ на вопрос