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

Все о PHP и даже больше

  Все выпуски  

Все о PHP и даже больше


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


Все о PHP и даже больше...

.:: Путь от начинающего до эксперта ::.

# 8
5/2003

8 марта 2003г.

Проект сайта "GreatWeb Design" GreatWeb.ru


    В этом выпуске:

  • Наши проекты
  • Массивы
  • Каталог ссылок
  •   Ссылки Вебмастеру:

  • Лучший хостинг
  • Раскрутка
  • Советы Web-мастеру
  • Книги по программировании
  • WEB-браузеры
  • Фоны
  • Скрипты
  • HARDWARE
  • Партнерская программа
  • DwebHost.RU

  • Привет программер!

    Наши проекты:

     

    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>";
    }


    Большое спасибо сайту http://orc.ruscripts.com/



    .:: Каталог ссылок


    Мы рассмотрим каталог ссылок на PHP, который не использует MySQL..

    Функции

    Наш каталог будет непростым. Он будет иметь администрирование, причём администрирование будет защищено логином и паролем.

    Сначала разберём фнукции каталога:

    1. Добавление ссылки
    2. Вывод ссылок
    3. Подсчёт количества ссылок в каждой категории(разделе).

    Функции администрирования:

    1. Вывод непровернных ссылок
    2. Вывод проверенных ссылок
    3. Редактирование любых сcылок
    4. Удаление ссылок
    5. Оценка ссылок

    Файлы

    Мы будем использовать вот какие файлы:

    1. addlink.php
    В этом файле стоит форма для добавления ссылок. А именно: Название, Адрес, Категория, Описание. Эта форма ссылается на файл tomoder.php - action=tomoder.php.

    2. tomoder.php В этом файле обрабатывается ссылка, ей присвается значение check=0, имеется ввиду то что она ещё непроверена, а значит недопущена к выводу.

    3. файлы вывода ссылок.
    В этих файлах будут выводиться ссылки.

    4. admin.php
    Файл администрирования, защищенный паролем и логином. Использует edit.php.

    5. edit.php
    Содержит в себе форму для редактирования ссылок в admin.php.

    6. id.txt
    Содержит id ссылки.

    7. links.txt
    Содержит ссылки.

    Код

    addlink.php

    <form method=post action=tomoder.php>
    Название:<input type=text name=name><br>
    Адрес:<input value="http://" type=text name=website><br>
    <select name="kat" style="width:200">
    <option value="1">Веб-мастеру</option>
    <option value="2">Программирование на PHP</option>
    <option value="3">Архив скриптов</option>
    <option value="4">Графика, Photoshop и др.</option>
    <option value="5">Раскрутка сайта</option>
    <option value="6">Архив документаций</option>
    <option value="7">Разное</option>
    </select>
    <br>
    <textarea rows="5" name="op" cols="30"></textarea><br>
    <input type=submit name=button value=Добавить>
    </form>

    Здесь сложного ничего нет - простая форма.

    tomode.php

    $idopen = fopen('id.txt','r'); // открываем файл с id прошлой ссылки
    $idlink = fgets($idopen, 1000); // переменной idlink присвоем значение id прошлой ссылки
    $idlink++; // увеличиваем id на 1
    fclose($idopen); // закрываем файл
    $idopen = fopen('id.txt', 'w'); // открываем заново
    fputs($idopen, $idlink); // добавляем новый id
    fclose($idopen); // закрываем файл

    $file = fopen('links.txt', 'r'); // открываем файл со ссылками
    $links = unserialize(fread($file, 100000)); // расшифровываем данный массив со ссылками
    fclose($file); // закрываем файлик

    function replace ($string)
    {

    $string = str_replace("::","::",$string);
    $string = str_replace("<","<",$string);
    $string = str_replace(">",">",$string);
    $string = str_replace('\'',""",$string);
    $string = str_replace("\n","
    ",$string);
    $string = str_replace('"',""",$string);
    $string = str_replace("%20"," ",$string);
    $string = str_replace("$","S;",$string);
    return $string;

    }
    // это функция для заменения некоторых символов в данных ввёденых пользователем

    $moder = "0"; // ссылка не проверена
    $op = replace($op); // испльзуем функцию для заменения тэгов и т.д.
    $name = replace($name); // испльзуем функцию для заменения тэгов и т.д.
    $website = replace($website); // испльзуем функцию для заменения тэгов и т.д.
    $links[] = array (
    'url' => "$website", // адрес
    'name' => "$name", // имя
    'description' => "$op", // описание
    'cat' => "$kat", // категория
    'stars' => "$starz", // оценка модератора
    'check' => "$moder", // проверена или нет
    'id' => "$idlink", // id ссылки
    );

    // создаём массив ссылки

    $file = fopen('links.txt', 'w'); // открываем файлик со ссылками
    $text = serialize($links); // зашифровываем новую ссылку
    fwrite ($file,"$text"); // записываем в файлик

    fclose($file); // закрываем файл

    admin.php

    <?
    if (($PHP_AUTH_USER!='login')||($PHP_AUTH_PW!='pass')) { // login - ваш логин, pass - ваш пароль
    header("WWW-Authenticate: Basic realm=\"Введите логин и пароль\"");
    header("HTTP/1.0 401 Unauthorized");
    exit();
    }
    ?>

    <?
    $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;
    }
    }
    }

    }
    ?>

    edit.php

    <form method=post action="<?=$PHP_SELF;?>">
    Название:<input type=text value="<?=$link[name];?>" name=editlink[name]><br>
    Адрес:<input value="<?=$link[url];?>" name=editlink[url] type=text ><br>
    Оценка:<input value="<?=$link[stars];?>" name=editlink[stars] type=text ><br>
    Проверка:<input value="<?=$link[check];?>" name=editlink[check] type=text ><br>
    <select name="editlink[cat]" style="width:200">
    <option value="1">Веб-мастеру</option>
    <option value="2">Программирование на PHP</option>
    <option value="3">Архив скриптов</option>
    <option value="4">Графика, Photoshop и др.</option>
    <option value="5">Раскрутка сайта</option>
    <option value="6">Архив документаций</option>
    <option value="7">Разное</option>
    </select>
    <input type="hidden" name="editlink[id]" value="<?echo $link[id];?>">
    <br>
    <?
    echo "<textarea rows=5 name=editlink[description] cols=30>$link[description]</textarea><br>";
    ?>
    <input type=submit name=button value=Сохранить>
    <input type=submit name=button1 value=Удалить>
    </form>


    Большое спасибо сайту http://orc.ruscripts.com/


    © 2002-2003 Copyright by GreatWeb Design
    Копирование материалов рассылки возможно только в случае явного указания на сайт "GreatWeb.RU" как на источник информации.


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

    В избранное