сделать массив из гостевой книги? - PullRequest
0 голосов
/ 23 марта 2011

Получил гостевую книгу , работающую нормально. Новые сообщения накапливаются красиво. Теперь только 10 самых последних сообщений должны отображаться с использованием структуры LIFO.

Мой курс все еще требует, чтобы я не использовал переменные базы данных или сеанса, поэтому я все еще использую ввод-вывод исключительно здесь.

<?php
  $message = "<p><b>naam: </b>$_POST[naam] <br>
                <b>email: </b>$_POST[email] <br>
                <b>onderwerp: </b>$_POST[subj]<br><br>
                <b>bericht: </b>$_POST[bericht]<br>
                <b>verzonden op: </b> $datum
                </p>
                <hr/>";
            if (is_writable ($file)){
                $fp= fopen($file, "a")
                        or die ("can't open file");
                    fwrite ($fp, $message);
                    fclose($fp);

                }//end if writable
            else {
                print ("can't write to file");
                }   
            if (is_readable($file)){
                $fp = fopen($file, "r");
                $message = fread ($fp, filesize($file));
                fclose ($fp);
                print ($message);
                }
            else {
                print("can't read file");}
    }//end else (variables not empty)
?>

поэтому я предполагаю, что идея состоит в том, чтобы $ message был массивом, а затем вроде как считать его до десяти, а затем продолжать отбрасывать конец каждый раз, когда появляется новое сообщение. Тогда я подумал, что просто объявить $message [] не работает, и теперь я почти ничего не понимаю.

1 Ответ

1 голос
/ 23 марта 2011

Что ж, чрезвычайно хромое решение - прочитать весь файл в память, а взорвать его содержимое в отдельные элементы массива.

$contents = file_get_contents($file);
$messages = explode("<hr/>",$contents);

Однако длясделайте свою гостевую книгу надежной, чтобы изменить формат файла данных.

В последние годы, когда большинство гостевых книг были такими плоскими на основе файлов, наиболее распространенный формат был таким:

name | email | title | date | message

гдебыли сохранены только данные без форматирования, каждое сообщение в отдельной строке и поля, разделенные каким-либо специальным символом или группой символов.
Такое решение на основе текстовых файлов не слишком надежно, но, по крайней мере, оно может обрабатываться безриск перегрузки доступной памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...