Вопрос № 22170: доброе утро :)
я только недавно начал изучать php, потому буду задавать вам совершенно глупые вопросы :) надеюсь на помощь :)
гостевая, сообщения сохраняются в guest.dat:
namexxxxxmsgxxxxxtimexxxxконец строки
как прочитать guest...
Вопрос № 22.170
доброе утро :)
я только недавно начал изучать php, потому буду задавать вам совершенно глупые вопросы :) надеюсь на помощь :)
гостевая, сообщения сохраняются в guest.dat:
namexxxxxmsgxxxxxtimexxxxконец строки
как прочитать guest.dat в массив? смотрю примеры в скриптах и ни как не могу врубиться :(
Отправлен: 14.06.2005, 19:05
Вопрос задал: Elektronik (статус: Посетитель)
Всего ответов отправлено: 4
Отвечает: SackTap
Здравствуйте, Elektronik!
Все предельно просто. Обьясняю (в приложении):
Объясняю принцип действия explode() - эта функция принимает в качестве первого параметра разделитель (в вашем случае это "xxxxx" - он разделяет время, имя и текст сообщения), а в качестве второго - строку, которую надо поделить.
Возвращает она массив: $msgs[0][0] будет содержать name, $msgs[0][1] - msg и т. д.
Иначе говоря после выполнения данного скрипта вы сможете получить доступ к сообщениям так:
$msgs[НОМЕР_СООБЩЕНИЯ][ПОЛЕ]
Удачи в изучении!
Приложение:
--------- =)
Ответ отправил: SackTap (статус: 10-ый класс)
Отправлен: 14.06.2005, 19:26 Оценка за ответ: 4 Комментарий оценки: спасиба :)
Отвечает: Ерёмин Андрей
Здравствуйте, Elektronik!
Вот так:
$file = file("guest.dat");
$data = explode("xxxxx",$file[0]);
Explode разделяет строку (2-ой параметр) на массив, используя 1-ый параметр в качестве разделителя.
--------- Жизнь - игра, в которой нет setup'а...
Ответ отправил: Ерёмин Андрей (статус: 7-ой класс)
Отправлен: 14.06.2005, 20:18 Оценка за ответ: 3 Комментарий оценки: спасиба :)
Отвечает: Lancelot
Здравствуйте, Elektronik!
Во первых я бы тебе рекомендовал сделать разделение табуляцией, т.е. записывать в файл так:
$write = $name." ".$msg." ".$time."
";
fwrite($file, $write");
Ну а теперь твоя головная боль:
$message = file("./guest.dat");
Этой функцией у тебя и получается массив содержащий кол-во элементов, совпадающее с количеством строк. Далее считаем кол-во элементов:
$num = count($message);
Потом рисуешь функцией echo таблицу, после чего запускаем след. цикл:
for ($i = 0; $i < $num; $i++)
{
//Разбиваем каждую строку на массив из 3-х элементов, указывая раздилителем знак табуляции, то бишь :
$line = explode(" ", $message[$i]);
// Получаем массив, в котором переменная $line[1] - Имя, $line[2] - сообщение, $line[3] - время.
Вот и всё! Если о чём-то хотите узнать попобробней то скачай себе документацию с сайта PHP в *.chm формате. Там есть поиск по функциям. Узнаешь много интересного.
Ответ отправил: Lancelot (статус: 6-ой класс)
Отправлен: 14.06.2005, 23:41 Оценка за ответ: 5 Комментарий оценки: спасиба :) всё просто, ясно и понятно :)
Отвечает: .: JeWeL :.
Здравствуйте, Elektronik!
Нужно делать так!
$a = file("guest.dat"); //здесь переменная $a становится массивом строк файла guest.dat
Теперь Вы можете прочитать любую его строку.Допустим в самом начале файла у вас его версия =),то результат echo $a[0]; будет таким:
Версия 1.0 бета
---------------
Что-то типа того... Удачи!
--------- Искусственный интеллект ничто по сравнению с натуральной глупостью.