GreatWeb.RU
- Портал продвинутых юзеров. Только здесь, все о веб-дизайне,
раскрутке, выбору хостинга и не только...
Читайте здесь последние новости Инетрнет!
Форум
продвинутых юзеров. Отличный форум! Задавайте абсолютно
любые вопросы, вам обязательно ответят и помогут решить Ваши
проблемы.
.::
Массивы
Я расскажу, что такое массивы
и как их можно использовать. Массивы - это сильная штука
в любом языке программирования. Они решат многие проблемы,
помогают сделать короче код программы (от этого соответственно
она становится легче) и создают простоту.
Первые опыты
Создать массив:
$имя_массива[позиция] = данные;
$massiv[0] = "text";
т.е. $massiv[0] имеет значение "text"; Но можно записать
попроще:
$massiv[] = "text";
это запись эквилента предыдущей. т.е. первый массив начинается
не с нуля, а единицы! Но также можно сделать так:
$massiv[2] = "text";
$massiv[0] и $massiv[1] будут пусты.
Если вы хотите создать массив уже из имеющихся данных, то
делают вот что:
$massiv = array("text", "mes", "chislo");
$massiv[0] будет равен "mes" "text" "chislo";
Массивы и файлы
Массивы можно записывать в файлы и также вытаскивать их
оттуда. Причём, можно вытащить массив и что-нибудь добавить
новое или изменять. Удалить тоже можно.
Допустим мы создали массив:
$massiv[] = array("Text");
Далее записываем его в файл
$file = fopen('file.txt', 'w');
$massiv = serialize($massiv); // это мы перекодировали массив
для записи его в файл
fwrite ($file,"$massiv");
fclose($file);
Допустим, в другом скрипте мы достаём массив чтобы пополнить:
$open = fopen("file.txt", "r");
$massiv = unserialize(fread($open,100000));
fclose($open);
$massnew[] = array("text323123"); // информация которую
надо добавить в наш старый массив
$massiv[] = $massnew; // добавляем
$open2 = fopen("file.txt", "w");
fputs($open2, serialize($massiv));
fclose($open2);
Вывод массива
Вот способ вывода самого простого массива:
echo "$massiv";
Но что, если в массиве, допустим, хранятся ссылки, и их все
нужно нам вывести. Нужно показать название ссылки, адрес,
описание. Делается вот что:
Представим что в каждом массиве есть элементы - name, link,
description. Каждый элемент хранит свою конкретную информацию
о ссылке и таких ссылок много. Тогда на экран покажем ссылки
таким образом:
Есть массив $massiv
foreach($massiv as $mas) {
echo "$mas[name]<br>$mas[link]<br>$mas[description]<br><br>";
}
1. addlink.php
В этом файле стоит форма для добавления ссылок. А именно:
Название, Адрес, Категория, Описание. Эта форма ссылается
на файл tomoder.php - action=tomoder.php.
2. tomoder.php В этом файле обрабатывается ссылка, ей присвается
значение check=0, имеется ввиду то что она ещё непроверена,
а значит недопущена к выводу.
3. файлы вывода ссылок.
В этих файлах будут выводиться ссылки.
4. admin.php
Файл администрирования, защищенный паролем и логином. Использует
edit.php.
5. edit.php
Содержит в себе форму для редактирования ссылок в admin.php.
<?
$filename = "links.txt"; // файл со ссылками
function open_links($filename) {
$open = fopen($filename, "r");
$links = unserialize(fread($open,100000));
fclose($open);
return $links;
}
// функция для открывания ссылок
function save_links($filename, $links) {
$open = fopen($filename, "w");
fputs($open, serialize($links));
fclose($open);
return 1;
}
// функция для открывания ссылок
?>
<?
$links = open_links($filename); // открываем ссылки
echo "Непроверенные:
"; // говорим что щас будут непроверенные ссылки
foreach ($links as $link) { // раскрадываем массив массивов
if($link[check]==0) { // если не проеренно
echo "<a href=\"?id=$link[id]\">$link[name]</a><br>$link[url]<br>$link[description]<br>$link[cat]<br>$link[id]<br><br>\n";
// вывод ссылок
$idd = $id;
}
}
echo "Проверенные:
"; // говорим что щас будут проверенные ссылки
foreach ($links as $link) { // раскрадываем массив массивов
if($link[check]==1) { // если проверено
echo "<a href=\"?id=$link[id]\">$link[name]</a><br>$link[url]<br>$link[description]<br>$link[cat]<br>$link[id]<br><br>\n";
// вывод ссылок
$idd = $id;
}
}
?>
<?
foreach($links as $link) {
if ($id==$link[id]) { // если id в URL совпадает с id ссылки
то..
. include "edit.php"; // ... то открываем файл edit.php
для редактирования данной ссылки
break;
}
}
?>
<?
if(!empty($button)){ // если кнопка сохранения не пуста
(в edit.php)
if (isset($editlink)) { // если есть новая подредактированая
ссылка
foreach($links as $key=>$link) { // передаём ключ к массиву
if ($link[id]==$editlink[id]) { // если совпадают id
$links[$key] = $editlink; // вносим новые значения в эту
ссылку
save_links($filename, $links); // и записываем эту ссылку
в файл
break;
}
}
}
}
if(!empty($button1)){ // если кнопка удаления не пуста (в
edit.php)
if (isset($editlink)) { если есть новая подредактированая
ссылка
foreach($links as $key=>$link) { // передаём ключ к массиву
if ($link[id]==$editlink[id]) { // если совпадают id
$links[$key] = $editlink; // вносим новые значения в эту
ссылку
unset($links[$key]); // удаляем ссылку
save_links($filename, $links); // сохраняем массив
break;
}
}
}