Возможен вариант, что на файл при его закачке были установлены неверные права. Если есть доступ по SSH, то выполните в каталоге с файлом команду
chmod 444 a.txt
. Через панель управления хостингом или через FTP тоже можно установить атрибуты файла r--r--r--.
Чуть выше вам дали тоже верный ответ, но я отвечу чуть более развернуто. Если указываете просто "a.txt", то по умолчанию находит в том же каталоге, где и php-скрипт. В случае указания конкретной папки XXX/a.txt, вы указываете что файл лежит в папке XXX, находящейся в текущей папке со скриптом. Вариант с указанием пути от корня, начинается с символа "/" и зачастую указывает на полный путь от реального корня диска. Но, если мне не изменяет память, директивами веб-сервера можно перебить это и корнем будет считаться корневая папка сервера или конкретного виртуального хоста. Сложнее вариант с многочисленными вызовами разных файлов из разных папок. Один файл может инклудиться из разных файлов в разных подпапках и тогда может возникнуть путаница, когда функция временами работает, а временами не работает. Тут может помочь только вариант указания полного пути от корня.