Увеличить скорость удаления строки

Статус
В этой теме нельзя размещать новые ответы.
Чего-то в твоём коде скобки лишние :)
И
$str_keys=implode($keys);
file_put_contents($file,$str_keys);
должно быть вне цикла.
 
Одна лишняя скобка была. :)
...должно быть вне цикла...
Почему, если я перезаписываю файл в конце каждой итерации? :nezn:
 
Почему, если я перезаписываю файл в конце каждой итерации?
Думал, что в цикле идёт обработка текста.
А ты походу колбасишь несколько файлов сразу.
 
Опять нужна помощь с быстрой выборкой и удалением. Прошу прочитать первую страничку, чтобы вникнуть в суть. И извините, пожалуйста, если сумбурно. Спрашивайте - поясню.
Начальные условия схожи.
Есть файл в 100-200К строк, с данными для парсинга.
Берём первую строку, парсим и обрабатываем инфу по ней.
После того как справились с обработкой строки - удаляем её.
Важно! Во время процесса парсинга - периодически получаем одномерный массив $arr на 30-60 значений, из которых по крайней мере $arr[0] есть в нашем файле (это как раз наша обрабатываемая первая строка).
Значения элементов массива могут совпадать с произвольными строками в исходном файле. Задача - проверять значения нашего массива на наличие в исходном файле. И если эти значения там обнаруживаются - удалять соответствующие строки.
Первая проблема - в скорости.
Вторая проблема скриптов предложенных выше в том, что если скрипт неожиданно останавливается во время того, как файл временно удаляется, то мы теряем наш исходный файл. Как предложено в седьмом посте Для просмотра ссылки Войди или Зарегистрируйся нужно наверное создавать временные файлы на время перезаписи. Но, можно ли предложенный вариант оптимизировать? Чтобы даже если скрипт запускается повторно, а исходного файла нет, то он восстанавливается из временного?
 
сделай временый файл.
$str_keys=implode($keys);
file_put_contents("$file.tmp",$str_keys);
@unlink($file);
rename("$file.tmp",$file);

Чтобы даже если скрипт запускается повторно, а исходного файла нет, то он восстанавливается из временного?
if(!file_exists($file) && file_exists("$file.tmp")) rename("$file.tmp",$file);
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху