Повыситься ли производительность скрипта?
Иногда видел что 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
Спасибо за совет!
Спасибо за совет!