[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нужно ли использовать unset() и fсlose()?
potrashitel
Назначение этих функций я понимаю. Но вот какая практическая польза от того что мы закроем файл (указатель файла) функцией fclose() ?
Повыситься ли производительность скрипта?
Иногда видел что fclose дублируется функцией unset, причем в нее передают то указатель файла, то строчку из файла полученную функцией fgets.

В общем суть:
А скрипт у меня простой - соединяет много маленьких файлов в один большой:
1. Берет строчку из файла "А" (который содержит ссылки на файлы).
2. Открывает ссылку (файл "B") полученную из файла А и построчно считывает и записывает в файл "C".

После того как мы прочитали и записали файл B нужно ли его закрывать и делать unset?



Спустя 57 минут, 40 секунд (5.11.2010 - 18:44) sergeiss написал(а):
Цитата (potrashitel @ 5.11.2010 - 18:47)
Но вот какая практическая польза от того что мы закроем файл (указатель файла) функцией fclose() ?

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

И по логике работы я бы предложил следующее, чтобы вообще меньше было открытых файлов и вообще меньше кода:
1. Функцией file читаешь файл А в массив.
2. Идешь циклом по массиву, открываешь файлы В, читаешь их содержимое также функцией file, либо file_get_contents, и пишешь в файл С.
При таком подходе вообще закрывать файлы не надо, они закрываются автоматически после получения данных.

Спустя 2 часа, 24 минуты, 25 секунд (5.11.2010 - 21:09) potrashitel написал(а):
sergeiss
Спасибо за совет!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.