Poniższy przykład ma na celu zobrazować jak to można praktycznie zrealizować, to bardzo proste forum.
<?php
define('DOCROOT', realpath(dirname(__FILE__)).DIRECTORY_SEPARATOR);
$filename = 'messages.json';
$data = array();
$t1 = microtime(true);
$file = DOCROOT . DIRECTORY_SEPARATOR . $filename;
if (realpath($file))
{
$contents = file_get_contents($file);
$data = json_decode($contents, true);
}
$t2 = microtime(true);
$time = $t2 - $t1;
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$data[] = array(
'nick' => $_POST['nick'],
'message' => $_POST['message'],
);
$contents = json_encode($data, JSON_PRETTY_PRINT);
file_put_contents($file, $contents, LOCK_EX);
}
$formatted_data = print_r($data, true);
?>
<!DOCTYPE html>
<html>
<head>
<meta CHARSET="UTF-8" />
</head>
<body>
<div>
<h2>Wiadomości na forum:</h2>
<pre>
<?= $formatted_data ?>
</pre>
<span>Wygenerowane w <?= $time ?> sekund</span>
</div>
<form method="POST" action="" >
<label>Nick:</label>
<input type="text" name="nick" />
<label>Wiadomość:</label>
<textarea name="message" ></textarea>
<input type="submit" value="Wyślij" name="submit" />
</form>
</body>
</html>
Dane są zapisywane do json, w dodatku ładnie sformatowanego
[
{
"nick": "nocny marek",
"message": "Cze\u015b\u0107. To jest moja pierwsza wiadomo\u015b\u0107 na forum."
},
{
"nick": "szczur",
"message": "Cze\u015b\u0107. Do\u0142\u0105czam do forum, chc\u0105c podyskutowa\u0107 z Wami."
}
]
Od tego jest file_get_contents albo file_put_contents a wiadomości w formularzu wysyłane są POST-em a nie przez GET. Polecam sobie sprawdzić w ile to się będzie generowało przy coraz większej liczbie wysłanych wiadomości bo to jest tylko do zabawy a nie do normalnego użytku.