@driverx18

Есть файл который весит ~6 гб, как его прочитать?

Есть файл который весит примерно 6 гб. Как его открыть, чтобы пхп не умер? Какие есть самые оптимальные способы?
  • Вопрос задан
  • 139 просмотров
Решения вопроса 1
Akdmeh
@Akdmeh
PHP, Yii2, Music
Используя:
$fh = fopen('file.log', 'r');

while(!feof($fh)) {
$string = fgets($fh); //получаем одну строчку с файла
}

Так вы будете читать файл построчно, оперативную память это почти будет не занимать, если вы, конечно же, не будете весь файл хранить в памяти, а только работать с ним построчно.
Ну и не лишним напомнить о возможной необходимости блокировки файла на всякий случай и т.д.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Compolomus
@Compolomus
Комполом-быдлокодер
Раньше в php 5.3 надо было пересобирать с какой то там директивой . Так как более 2 gb не читало.
Ну и сам php должен быть х64
Ответ написан
@rPman
Если предложения выше вам не помогут, и вам нужно весь файл зачем то считать в память, то воспользуйтесь 64-битной версией php, поправив в php.ini
memory_limit = 8192M

p.s. если ваш файл - картинка, смело умножайте на 4 ваши требования по оперативной памяти
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы