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

Форум PHP

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

 

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

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

тема: Чтение больших файлов
 
 автор: ValeV   (23.12.2009 в 12:00)   письмо автору
 
 

Как прочитать большой файл быстрее.

  Ответить  
 
 автор: Valick   (23.12.2009 в 12:04)   письмо автору
 
   для: ValeV   (23.12.2009 в 12:00)
 

-

  Ответить  
 
 автор: ValeV   (23.12.2009 в 12:09)   письмо автору
 
   для: Valick   (23.12.2009 в 12:04)
 

Какие функции для этого предназначены?

  Ответить  
 
 автор: ~AquaZ~   (23.12.2009 в 12:56)   письмо автору
 
   для: ValeV   (23.12.2009 в 12:09)
 

1. Насколько файл большой?
2. Чо с ним надо делать?

  Ответить  
 
 автор: ValeV   (23.12.2009 в 13:21)   письмо автору
 
   для: ~AquaZ~   (23.12.2009 в 12:56)
 

1. Уже 80 мб
2. Построчное чтение.

  Ответить  
 
 автор: ~AquaZ~   (23.12.2009 в 13:48)   письмо автору
 
   для: ValeV   (23.12.2009 в 13:21)
 

Конечно построчное - иначе не получится. Что надо сделать кроме чтения? Не просто же прочитать?

  Ответить  
 
 автор: ValeV   (23.12.2009 в 13:57)   письмо автору
 
   для: ~AquaZ~   (23.12.2009 в 13:48)
 

Найти в строке значение

  Ответить  
 
 автор: ~AquaZ~   (23.12.2009 в 14:14)   письмо автору
 
   для: ValeV   (23.12.2009 в 13:57)
 

<?php
$search 
'ищем это значение';
$fp fopen('file.txt');
$i 1;
while (
$str fgets($fp)){
    
$pos strpos($str$search);
    if (
$pos){
        
$ok 1;
        break;
    }
    else 
$i++;
}
if (
$ok) echo 'Найдено в строке '.$i.', знак '.$pos;
else echo 
'Не найдено.';
?>
Но такая вещь многострочный текст не найдёт.

  Ответить  
 
 автор: ValeV   (23.12.2009 в 14:33)   письмо автору
 
   для: ~AquaZ~   (23.12.2009 в 14:14)
 

Я вот только не понимаю, memory_limit в php.ini даст возможность открывать большие файлы функцией fopen().
Функция file() при больших файлах не работает.

  Ответить  
 
 автор: ~AquaZ~   (23.12.2009 в 14:50)   письмо автору
 
   для: ValeV   (23.12.2009 в 14:33)
 

fopen() не читает файл, а только создаёт дескриптор соединения и блокирующий дескриптор. А читает функция fgets(), кстати, после кода что я дал надо написать (можно перед выводом)
unset($str);

  Ответить  
 
 автор: ValeV   (23.12.2009 в 15:02)   письмо автору
 
   для: ~AquaZ~   (23.12.2009 в 14:50)
 

1. На сколько примерно скорость изменится в сравнении с file()
2. Что значит блокирующий дескриптор

  Ответить  
 
 автор: ~AquaZ~   (23.12.2009 в 17:17)   письмо автору
 
   для: ValeV   (23.12.2009 в 15:02)
 

1. file() просто даст ошибку, сравнивать нельзя.
2. Блокирующий дескриптор - типа файл занят.

  Ответить  
 
 автор: ValeV   (23.12.2009 в 17:46)   письмо автору
 
   для: ~AquaZ~   (23.12.2009 в 17:17)
 

А если надо редактировать большой файл?

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

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