Отправляет email-рассылки с помощью сервиса Sendsay

Изучаем PHP

  Все выпуски  

Изучаем PHP


Информационный Канал Subscribe.Ru


Урок третий
  • Продолжаем писать гостевую
-+Функция вывода сообщений

function print_msg()
{
global $page;
if (!file_exists("msg.dat") or filesize("msg.dat")==0)
{
print "Сообщений нет.";
exit;
}
$fp=file("msg.dat");
$x=count($fp);
$msg_by_page=5;
$allpg=ceil($x/$msg_by_page);
for ($i=$msg_by_page*($page-1); $i<$msg_by_page*($page-1)+$msg_by_page; $i++)
{
$a=explode("\\",$fp[$i]);
if ($a[0]=="")
{
break;
}
print "Оставил ".$a[0]." ====+++==== Дата".$a[2]."<br>".$a[1]."<br>";
}
}

Так, функцию вывода сообщений написали! Теперь давайте разберем ее, с блоком if вы немного знакомы, ниже приводится подробная информация по его использованию:

If (условие)
{
блок операторов
}
else
{
блок операторов
}
либо
elseif(условие)
{
блок операторов
}

Ну, с этим думаю понятно. Так как со значением знака ! мы с вами познакомились в прошлый раз, то сейчас будем разбирать просто функции.

file_exists("имя файла")-данная функция проверяет существует ли данный файл.
filesize("имя файла") а эта функция возвращает размер файла в байтах.

В данном случае мы проверяем, существует ли файл, если существует, то не равен ли его размер нулю. Если файла нет или он пустой выводим сообщение и выходим(какое сообщение я думаю понятно).
Далее в переменную $fp получаем с помощью функции file данные из фала, после чего в переменной $fp содержится массив, в котором каждому элементу соответствует каждая строка файла.
Далее с помощью функции count, вычисляем количество элементов массива.
Потом задаем количество сообщений на странице, оно у нас будет содержаться в переменной $msg_by_page. Далее вычисляем количество страниц, оно у нас будет храниться в переменной $allpg.
Да кстати для того чтобы у вас все работало перед блоком if, который мы с вами обсуждали во втором уроке вставьте следующий код:

if (!isset($page)){$page=1;}

Для чего он нужен вы узнаете позже.
Дальше идет цикл for, в котором мы вычисляем, какие строки выводить. Все вычисление строится на переменной $page. То есть перевести запись нашего цикла можно так: для $i равной количество записей на странице($msg_by_page) умноженные на номер страницы минус один ($page-1), до тех пор, пока $i меньше количества записей на странице умноженные на номер страницы минус один ($page-1) плюс количество записей на странице, на каждом проходе цикла увеличиваем $i на один.
Если к примеру переменная $page равна единице то получиться следующие for ($i=0; $i<5; $i++) а если к примеру 3 то for ($i=10; $i<15; $i++). Вот этот цикл позволит нам организовать постраничный вывод информации.
Теперь рассмотрим еще одну интересную функцию explode, с ее помощью мы разбиваем строку поэлементно, и получаем массив элементов в переменной $a.
Для того чтобы было более понятно, ниже приведу две строки из файла msg.dat:

Андрей\Круто ты попал….\ 15/12/2003\ elfin1@yandex.ru
Дима\Сам ты попал\16/12/2003\hwsas@rambler.ru

Ну дальше я думаю вы догадались что происходит.

-+Ответы на письма читателей

Один из читателей написал мне следующее (цитата из письма):

И еще одно, установив php 4.3.4, столкнулся с тем, что он не принимает
переменных из html форм. Оказалось, нужно в файле php.ini в каталоге windows
установить значение переменной register_globals = On
(по умолчанию она отключена). Прислал Lex Rem.

На самом деле переменные PHP принимает, они содержаться в массиве $HTTP_POST_VARS. Если взять пример нашей гостевой, то для того что бы получить доступ например к полю mail нашей формы, нужно сделать следующее $mail=$HTTP_POST_VARS[‘mail’];.
Вся эта бодяга сделана для улучшения безопасности, то есть этот массив позволяет убедиться вам что переменные пришедшие в ваш скрипт действительно переданы по протоколу HTTP методом POST, отсюда и название переменной.

-+В следуещем выпуске
  • Пишем функцию сохранения сообщения.

Автор рассылки Андрей Сергеев ata elfin e-mail hwsas@rambler.ru
Мой сайт w5.boom.ru каталог партнерских программ для вебмастера.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное