Код, который вы опубликовали, работает, поэтому я предполагаю, что между этими двумя файлами есть небольшая разница.
Как создаются эти файлы? Они загружены пользователем? Создано PHP? Если один или оба из них поступают из внешнего источника, вам следует проверить, как обрабатываются символы новой строки. Если один файл использует CR + LF для перехода на новую строку (т. Е. «Стиль Windows»), а другой - просто LF (т. Е. «Unix-стиль»), то сравнение будет неудачным.