Вот можно открыть файл, собрать содержимое через fgets и закрыть файл. Чем от этого подхода на фундаментальном уровне отличается file_get_contents()? Оно, же, по сути, делает абсолютно то же самое, а собрать содержимое файла как-то иначе, нежели это делают всякие fgets(), вроде как не получится.