Wiadomo że może być kilka różnych podejść ale weźmy pod lupę to:
index.php
<!DOCTYPE html>
<html lang="PL">
<head>
<meta CHARSET="UTF-8"/>
<title>Obsługa plików</title>
</head>
<body>
<h1>Temat: Obsługa plików</h1>
<form method="GET" action="showfile.php">
<label name="filename">Nazwa pliku:</label>
<input type="text" name="filename" />
<input type="submit" value="Czytaj" name="submit" />
</form>
</body>
</html>
oraz showfile.php
<?php
define('DOCROOT', realpath(dirname(__FILE__)).DIRECTORY_SEPARATOR);
$filename = $_GET['filename'];
$file = realpath(DOCROOT . 'files' . DIRECTORY_SEPARATOR . $filename);
if ($file)
{
$contents = file_get_contents($file);
header("Content-Type: text/plain");
header("Cache-Control: max-age=86400, public");
echo $contents;
}
else
{
header("HTTP/1.1 404 Not Found");
echo 'Plik nie istnieje';
}
Zakładam że wyświetlane pliki tekstowe są w podkatalogu files, w jakimś tam katalogu projektu.
To co mi jednak wypluwa about:cache w FF, po kilkukrotnym odświeżeniu strony wyników:
Key Data size Fetch count Last Modifed Expires
predictor-origin:http://localhost/ 0 bytes 3 2016-10-23 09:18:44 No expiration time
http://localhost/showfile.php?filename=loremipsum.txt&submit=Czytaj 2903 bytes 3 2016-10-23 09:18:59 2016-10-24 09:18:44
Natomiast gdyby to wyszukiwać przez POST w formularzu wysyłając to do showfile.php (naturalnie późniejsze odświeżenie przez prześlij ponownie) cache przeglądarki zachowuje się jak widzę inaczej...
Key Data size Fetch count Last Modifed Expires
predictor-origin:http://localhost/ 0 bytes 3 2016-10-23 09:29:03 No expiration time
1477201632:http://localhost/showfile.php 2903 bytes 0 2016-10-23 09:29:20 2016-10-24 09:29:20