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

PHP-песочница

  Все выпуски  

PHP-песочница


Php-«песочница»

Выпуск 9. Ассоциативный массив.

Добрый день, с Вами как всегда Андрей Чернобай с новым выпуском «PHP-песочницы».

В прошлом выпуске мы познакомились с простыми массивами. На самом деле такие массивы применяются не часто, чаще используют ассоциативные массивы. О них и пойдёт речь.

В чём отличие ассоциативного массива от простого.

Это проще показать. Сравните: в обеих таблицах ниже показаны массивы. Но в первом случае индексами являются числа, во втором… Думаю, ясно.

Простой массив:


$name =

0

1

2

3

4

 

Саша

Коля

Катя

Ваня

Лена

Ассоциативный массив:


$name =

Russia

France

USA

Italy

Japan

 

ВАЗ

Пежо 

Форд 

Фиат 

Тойота 

Создаётся ассоциативный массив так же, как и простой. Первым способом:

$auto[“Russia”] = "ВАЗ";
$auto [“France”] = "Пежо";
$auto [“USA”] = "Форд";
$auto [“Italy”] = "Фиат";
$auto [“Japan”] = "Тойота";

Или вторым:

$auto = array (“Russia” => "ВАЗ", “France” => "Пежо", “USA” => "Форд", “Italy” => "Фиат", “Japan” => "Тойота");

И значение из массива выводится точно так же. Вы это хорошо умеете по прошлому выпуску, поэтому я показывать не стану, сделайте это самостоятельно.

Есть другие способы создания массивов, но эти два наиболее употребительны, потому забивать голову больше не буду.


"PHP+MySQL для начинающих" >>>>>

Как стать Веб-мастером >>>>>

 

Чтение из файла с помощью функции file и массива.

Сейчас разберёмся со вторым способом чтения из файла. Напомню: первый способ заключался в использовании функции fread.

Тогда результат нас не очень удовлетворил. Теперь же прочитаем файл с помощью функции file и массива.

Функция file имеет очень простой синтаксис:

file (имя читаемого файла)

Открыаем reg.php в Блокноте. Добавляем код (напоминаю: новый код - зелёный):

<?php
if (($name == "") || ($password == "") || ($email == ""))
{
echo "<p>Форма заполнена не полностью! Вернитесь, пожалуйста, и заполните все поля формы!</p>";
exit ();
}
else
{
$newfile = fopen($name, "w");
fwrite ($newfile, $password);
fwrite ($newfile, "\n");
fwrite ($newfile, $email);
fwrite ($newfile, "\n");
fclose ($newfile);
echo "<p>Поздравляем Вас, " .$name. ". Регистрация прошла успешно.</p>";
}
/*чтение из файла с помощью функции fread */
$file = fopen($name, "r");
$n = fread ($file, 100);
echo "<p>Ваш пароль: " .$n. ". Сохраните его.</p>";
fclose ($file);
/*чтение из  файла с помощью функции file и массива*/
$rfile = fopen($name, "r"); /*открываем файл только для чтения, на что указывает атрибут "r"*/
$data = file($name); /* считываем открытый файл в массив $data*/
//далее выводим из массива пароль и e-mail нового пользователя на страницу
echo "Ваш пароль: " .$data[0]. ". Ваш электронный адрес: " .$data[1]. ". Сохраните свои данные.";
fclose ($rfile); //закрыли файл

?>

Наверное, Вы обратили внимание, что в строке

echo "Ваш пароль: " .$data[0]. ". Ваш электронный адрес: " .$data[1]. ". Сохраните свои данные.";

мы пользовались не просто переменной, как в предыдущем примере ($n), а элементами массива ($data[0] и $data[1]), у которых в квадратных скобках указаны их индексы (порядковые номера).

Сохраните изменения в reg.php, откройте страницу index.php в браузере, заполните поля формы, нажимаем «Зарегистрироваться». На странице вывелись сообщения из обоих примеров:

Поздравляем Вас, … (имя). Регистрация прошла успешно.
Ваш пароль: 2222222 admin@localhost . Сохраните его.
Ваш пароль: 2222222. Ваш электронный адрес: admin@localhost . Сохраните свои данные.

Согласитесь, второй результат выглядит лучше.

Следует отметить, что данные регистрации намного удобней хранить в базе данных. Если есть желание научиться создавать сайты на php с использованием баз данных MySQL профессионально, рекомендую вот этот курс.

Скажу ещё (пока просто для общего развития), что для копирования файлов следует использовать функцию copy(), для переименования – функцию rename(), для удаления файла – функцию unlink().

Но пока всё. Успехов. Встретимся.

Андрей Чернобай
kapitansg@yandex.ru


В избранное