Простое решение - хранить файл вне публичной папки.(В вашем случае public = htdocs)
Например:
├── protected.txt
├── public
│ ├── index.html
│ ├── exec.php
А затем в вашем exec.php
вы можете получить доступ к файлу с помощью:
echo file_get_contents(__DIR__ . "/../protected.txt");
(Метод # 2)
Поскольку вы упомянули в комментариях, что используете XAMPP, что означает, что вы запускаете свой сервер на Apache, я могу показать вам другой подход с использованием htaccess.
├── public
│ ├── index.html
│ ├── exec.php
│ ├── protected
│ │ ├── .htaccess
│ │ ├── protected.txt
И тогда в вашем .htaccess
вы пишете:
deny from all
Это сделает каждый файл в папке protected
недоступным через HTTP.
И вашexec.php
файл будет выглядеть так:
echo file_get_contents(__DIR__ . "/protected/protected.txt");