|
|
|
| Как прочитать большой файл быстрее. | |
|
|
|
|
|
|
|
для: ValeV
(23.12.2009 в 12:00)
| | - | |
|
|
|
|
|
|
|
для: Valick
(23.12.2009 в 12:04)
| | Какие функции для этого предназначены? | |
|
|
|
|
|
|
|
для: ValeV
(23.12.2009 в 12:09)
| | 1. Насколько файл большой?
2. Чо с ним надо делать? | |
|
|
|
|
|
|
|
для: ~AquaZ~
(23.12.2009 в 12:56)
| | 1. Уже 80 мб
2. Построчное чтение. | |
|
|
|
|
|
|
|
для: ValeV
(23.12.2009 в 13:21)
| | Конечно построчное - иначе не получится. Что надо сделать кроме чтения? Не просто же прочитать? | |
|
|
|
|
|
|
|
для: ~AquaZ~
(23.12.2009 в 13:48)
| | Найти в строке значение | |
|
|
|
|
|
|
|
для: 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 'Не найдено.';
?>
| Но такая вещь многострочный текст не найдёт. | |
|
|
|
|
|
|
|
для: ~AquaZ~
(23.12.2009 в 14:14)
| | Я вот только не понимаю, memory_limit в php.ini даст возможность открывать большие файлы функцией fopen().
Функция file() при больших файлах не работает. | |
|
|
|
|
|
|
|
для: ValeV
(23.12.2009 в 14:33)
| | fopen() не читает файл, а только создаёт дескриптор соединения и блокирующий дескриптор. А читает функция fgets(), кстати, после кода что я дал надо написать (можно перед выводом) | |
|
|
|
|
|
|
|
для: ~AquaZ~
(23.12.2009 в 14:50)
| | 1. На сколько примерно скорость изменится в сравнении с file()
2. Что значит блокирующий дескриптор | |
|
|
|
|
|
|
|
для: ValeV
(23.12.2009 в 15:02)
| | 1. file() просто даст ошибку, сравнивать нельзя.
2. Блокирующий дескриптор - типа файл занят. | |
|
|
|
|
|
|
|
для: ~AquaZ~
(23.12.2009 в 17:17)
| | А если надо редактировать большой файл? | |
|
|
|