|
| Дата |
|
USD/RUB | 93.7196 | BTC/USD | 65091.0298 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
17.04.2010, 01:55
|
#1
|
Шоколатье
Регистрация: 20.04.2007
Сообщений: 5,973
Бабло: $726105
|
PHP:как взять из текстовика 1к строк 1м махом
Есть текстовый файл, который наполняется некими скриптами
нужно другим скриптом брать из этого файла 1000 строк на обработку, при этом убрав из исходного файла эти 1000 строк.
как быстрее всего это сделать?
|
|
|
17.04.2010, 02:01
|
#2
|
private.
Регистрация: 30.04.2008
Сообщений: 3,864
Бабло: $462680
|
возвращает массив 1000 строк.
PHP код:
<? function golines() { $file = 'исходный файл.txt'; $limit = 1000; $file = file($file); $lines = array(); foreach($file as $index => $value) { $lines[] = trim($value); if($index == $limit) break; } } ?>
|
|
|
17.04.2010, 02:06
|
#3
|
Senior Member
Регистрация: 03.04.2007
Адрес: www.ua
Сообщений: 3,209
Бабло: $373635
|
Можно считать весь массив ф-цией file, потом вырезать 1к строк функцией array_splice и то что осталось записать назад.
|
|
|
17.04.2010, 02:20
|
#4
|
Шоколатье
Регистрация: 20.04.2007
Сообщений: 5,973
Бабло: $726105
ТС -->
|
ТС
Цитата:
Сообщение от kanscx
Можно считать весь массив ф-цией file, потом вырезать 1к строк функцией array_splice и то что осталось записать назад.
|
я чёто похожее соорудил, вроде работает и даже быстро. всем спасибо.
PHP код:
function getGrand ($phile)
{
$accs=file($phile);
$fp=fopen($phile,"w");
for ($jj = 0; $jj <= 1000; $jj++)
{
$acc.=$accs[$jj];
unset($accs[$jj]);
}
fputs($fp,implode("",$accs));
fclose($fp);
return trim($acc);
}
|
|
|
17.04.2010, 03:05
|
#5
|
хуйнанэ
Регистрация: 03.04.2007
Сообщений: 1,294
Бабло: $126446
|
а лочить файл не?
|
|
|
17.04.2010, 06:43
|
#6
|
Senior Member
Регистрация: 03.11.2009
Сообщений: 151
Бабло: $20330
|
Лайт-версия
PHP код:
function cut_lines($file_name) {
$f = file($file_name, FILE_IGNORE_NEW_LINES);
file_put_contents($file_name, implode(PHP_EOL, array_slice($f, 1000)));
return array_slice($f, 0, 1000);
}
|
|
|
17.04.2010, 08:51
|
#7
|
Профи Интернет коммерции
Регистрация: 04.04.2007
Сообщений: 2,344
Бабло: $456535
|
я хз как вы file работаете
у меня дорген вис и долго думал када я файлом 100 метровые файлы считывал пришлось перейти на фгетс и фсиик
|
|
|
17.04.2010, 11:14
|
#8
|
кодер-энтузиаст
Регистрация: 04.04.2007
Адрес: Джамайка
Сообщений: 3,381
Бабло: $447150
|
Цитата:
брать из этого файла 1000 строк на обработку, при этом убрав из исходного файла эти 1000 строк
|
Для таких вещей все-таки проще юзать базу данных, mysql ту же.
А то в один прекрасный момент что-нить случится и в файлик при удалении этих 1000 строк запишется null и все похерится.
Ну и объёмы с mysql можно гораздо большие ворочать.
|
|
|
17.04.2010, 11:22
|
#9
|
хде мой компот?!
Регистрация: 07.01.2008
Сообщений: 327
Бабло: $31276
|
. .
|
|
|
17.04.2010, 11:59
|
#10
|
Senior Member
Регистрация: 03.04.2007
Адрес: www.ua
Сообщений: 3,209
Бабло: $373635
|
Цитата:
Сообщение от mavook
я хз как вы file работаете
у меня дорген вис и долго думал када я файлом 100 метровые файлы считывал пришлось перейти на фгетс и фсиик
|
Конечно от планируемых объемов зависит, если дохуя то фгетс надо юзать.
|
|
|
|