Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: fgets() и смещение
 
 автор: michail1982   (12.06.2009 в 11:17)   письмо автору
 
 

Есть текстовый файлик размером в 1,5 Гб , который нужно распарсить и залить в БД
при обработку всего файла оперативка не позволяет :)
есть идея делать поблочто (допустим по 10 000 строк), передавая начальное смещение в УРЛе
ну и собственно вопрос... как "пропустить" первые 10 000 строк с начала файла?

  Ответить  
 
 автор: Trianon   (12.06.2009 в 11:27)   письмо автору
 
   для: michail1982   (12.06.2009 в 11:17)
 

никак. Позиционироваться в файле Вы можете только побайтно.
Правда, в пределах первых двух гигабайт Вы можете получить текущую позицию файла и воспользоваться ей при выполнении следующего запроса.

  Ответить  
 
 автор: Valick   (12.06.2009 в 11:30)   письмо автору
 
   для: Trianon   (12.06.2009 в 11:27)
 

ну можно например тупо читать построчно "в пустоту" если файл рядышком
хотя при таком раскладе это ненужно)

  Ответить  
 
 автор: Trianon   (12.06.2009 в 11:31)   письмо автору
 
   для: Valick   (12.06.2009 в 11:30)
 

Это не называется пропустить. Это называется прочитать.

  Ответить  
 
 автор: MIchail1982   (12.06.2009 в 11:33)   письмо автору
 
   для: Trianon   (12.06.2009 в 11:27)
 

Спасибо...
я подумал о

<?php
$sm 
intval($_GET['sm']);
$fl fopen('file.txt','r');
$row 0;
while(
$row<$sm){
fgets($fl);
$row++;
}
//уже работаем
?>

но думал есть какое-то более удачное решение

  Ответить  
 
 автор: Valick   (12.06.2009 в 11:28)   письмо автору
 
   для: michail1982   (12.06.2009 в 11:17)
 

код парсера и файлик находятся на разных серверах?

  Ответить  
 
 автор: MIchail1982   (12.06.2009 в 11:34)   письмо автору
 
   для: Valick   (12.06.2009 в 11:28)
 

всё рядом на локалхосте

  Ответить  
 
 автор: Valick   (12.06.2009 в 11:40)   письмо автору
 
   для: MIchail1982   (12.06.2009 в 11:34)
 

тогда зачем этот "бубен"? почему у Вас не получается обработать файл построчно целиком?

  Ответить  
 
 автор: MIchail1982   (12.06.2009 в 11:42)   письмо автору
 
   для: Valick   (12.06.2009 в 11:40)
 

>тогда зачем этот "бубен"? почему у Вас не получается обработать файл построчно целиком?
скрипт выедает всю оперативку там на 10000 строк 15000 запросов к бд, парсинг, конверт. кодировки

  Ответить  
 
 автор: Valick   (12.06.2009 в 11:55)   письмо автору
 
   для: MIchail1982   (12.06.2009 в 11:42)
 

хм.. не знаю что Вам мешает читать, обрабатывать, конвертить и заносить в базу построчно...
мгоу предложить два варианта.. 1) увеличить оперативку 2) разбить файл на несколько меньших по объёму файлов и обрабатывать по очереди.

  Ответить  
 
 автор: MIchail1982   (12.06.2009 в 12:12)   письмо автору
 
   для: Valick   (12.06.2009 в 11:55)
 

Спасибо

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования