Створюємо сокращатель url. Частина 2.

Відео: Створюємо свій Скрімер!

Створюємо сокращатель URL. Частина 2.

Відео: Скорочення посилань гугл | Google URL Shortener

Всіх зі святом! А сьогодні ми продовжуємо створювати сокращатель URL, а саме: створимо базу даних, де будуть зберігатися наші посилання і їх код, і головний клас Shortener.

Створення бази даних

Я створю базу даних з ім`ям website

create database website-

А в ній нам потрібно створити таблицю. Назвемо її, наприклад, links.

Відео: Як скоротити посилання // сервіси скорочення посилань гугл, вк і яндекс

create table links(
id
intnotnull primary key auto_increment,
url varchar
(255),
code varchar
(12),
created datetime
) -



Таблиця елементарна, але все-таки поясню:

  • id - унікальний ідентифікатор запису, не може бути порожнім, автоматично збільшується
  • url - url, який буде вводити користувач через нашу форму, може бути досить довгим, але, думаю, 255 знаків нам вистачить
  • code - короткий код, який буде згенерований для кожного url
  • created - просто дата і час, коли створена запис

Виконайте цей запит в консолі або в phpmyadmin, щоб створити таблицю. Давайте тепер трохи поговоримо про нашу структурі файлів, вона у нас така:

  • classes
  • shortener.php
  • css
  • style.css
  • index.php
  • shorten.php
  • redirect.php
  • .htaccess



  • відкриємо файл shortener.php і запишемо наступне:

    Відео: Як змінити URL адреса YouTube каналу

    lt ;?php
    classShortener{
    protected $ db-

    publicfunction __construct(){
    $ this
    -gt;db =newMysqli(`Localhost`,`Root`,``,`Website`) -
    }

    publicfunction generateCode($ num){
    return base_convert($ num,10,36) -
    }

    publicfunction makeCode($ url){
    $ url
    = trim($ url) -

    if(!filter_var($ url, FILTER_VALIDATE_URL)){
    return``-
    }

    $ url
    = $ this-gt;db-gt;escape_string($ url) -

    $ exsists
    = $ this-gt;db-gt;query("SELECT code FROM links WHERE url = `{$ url}`") -

    if($ exsists-gt;num_rows){
    return $ exsists-gt;fetch_object() -gt;code-
    }else{
    $ this
    -gt;db-gt;query("INSERT INTO links (url, created) VALUES ( `{$ url}`, NOW ())") -

    $ code
    = $ this-gt;generateCode($ this-gt;db-gt;insert_id) -

    $ this
    -gt;db-gt;query("UPDATE links SET code = `{$ code}` WHERE url = `{$ url}`") -

    return $ code-
    }
    }

    publicfunction getUrl($ code){
    $ code
    = $ this-gt;db-gt;escape_string($ code) -
    $ code
    = $ this-gt;db-gt;query("SELECT url FROM links WHERE code = `$ code`") -

    if($ code-gt;num_rows){
    return $ code-gt;fetch_object() -gt;url-
    }

    return``-
    }
    }
    ?gt;

    Вот такой вот немаленький клас у нас вийшов. Але, не дивлячись на розмір, він досить таки простий. Давайте розберемося, що ми тут написали.

    У нас є чотири методи: __construct, generateCode, getUrl і makeCode. У конструкторі ми просто підключаємося до бази даних і записуємо її об`єкт в властивість $ db, другий метод приймає число і на його основі генерує якийсь код. метод getUrl, як і випливає з назви, повертає url з бази даних за кодом, який ми передамо в якості аргументу. Якщо такого запису немає, то повернеться порожній рядок. І ось, ми підійшли до найбільшого методу в цьому класі - makeCode.

    У цей метод передається url, який потім очищається від прогалин і перевіряється на коректність за допомогою filter_var. Після ми звертаємося до бази даних і повертаємо код, соотвествующий переданому url. Якщо ж коду немає, то ми записуємо в базу даних url і дату створення, потім генеруємо код за допомогою методу generateCode, передавши йому id останньої вставленої записи, а далі оновлюємо запис, вставивши туди наш код, і повертаємо його з методу.

    На цьому я закінчую другу частину по створенню сокращателя URL. Сьогодні ми створили клас, який буде робити всю роботу, і тим самим пройшли вже більше половини шляху. Не забудьте переглянути і зрозумійте код, а якщо є питання, можете задавати їх у коментарях.

Поділися в соціальних мережах:

Схожі
Створення движка на mvc. Починаємо робити чат.Створення движка на mvc. Починаємо робити чат.
Створення движка на mvc. Створюємо авторизацію.Створення движка на mvc. Створюємо авторизацію.
Створення движка на mvc. Робимо можливість редагування і видалення користувачів.Створення движка на mvc. Робимо можливість редагування і видалення користувачів.
Як задати колір відвіданих посиланьЯк задати колір відвіданих посилань
Як динамічно отримувати коментарі з бази даних.Як динамічно отримувати коментарі з бази даних.
Як зробити коментування на сайтіЯк зробити коментування на сайті
Індекси в mysqlІндекси в mysql
Скорочення url-адреси на phpСкорочення url-адреси на php
Як правильно створювати структуру бази данихЯк правильно створювати структуру бази даних
Group by в sqlGroup by в sql
» » Створюємо сокращатель url. Частина 2.