PHP - Как вырезать блок строк в текстовом документе? - PullRequest
3 голосов
/ 13 декабря 2010

Как мне вырезать кусок текста из текстового файла в PHP. Например, я хочу вынуть строки 0-50 и превратить их в строку. Может быть, даже положить немного HTML форматирование там. Я уже знаю, какие строки мне нужно вырезать, я просто не знаю, как их выделить и поместить в строку.

Ответы [ 4 ]

4 голосов
/ 13 декабря 2010

Использовать файл ($ filename).В результате получается массив, в котором каждый элемент представляет собой строку из вашего файла.Образец:

$lines = file("foo.txt");
//extract desired lines
$lines = array_slice($lines,19,21);
$string ) implode("\n",$lines);
1 голос
/ 13 декабря 2010

Откройте файл с помощью fopen , прочитайте первые 50 строк, используя fgets .

$fp = fopen('myfile.txt', 'rt');
if ($fp)
{
    for ($i = 0; $i < 50; $i++)
    {
        $s = fgets($fp);
        ...add error checking and do something with the line here
    }
}

Это эффективно, даже если вам нужно прочитать первые 50 строкбольшой файл.

1 голос
/ 13 декабря 2010

взорваться на новой строке и вывести значения массива от 0-50.

0 голосов
/ 13 декабря 2010

Менее ресурсоемкий подход:

$fileObject      = new SplFileObject('yourFile.txt');
$fileIterator    = new LimitIterator($fileObject, 0, 49);
$firstFiftyLines = implode(iterator_to_array($fileIterator));

или как альтернатива

$fileObject      = new SplFileObject('yourFile.txt');
$fileIterator    = new LimitIterator($fileObject, 0, 49);
$firstFiftyLines = '';
foreach ($fileIterator as $currentLine) {
    $firstFiftyLines .= $currentLine;
}

Если вам нужны другие строки, измените второй и третий аргумент на LimitIterator . Первый - начальное смещение, второй счетчик итераций (в этом контексте читать строки).

Пометка ответа CW, поскольку вопрос (и ответ) является дубликатом Считать файл из строки X в строку Y?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...