Створюємо сокращатель 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. Сьогодні ми створили клас, який буде робити всю роботу, і тим самим пройшли вже більше половини шляху. Не забудьте переглянути і зрозумійте код, а якщо є питання, можете задавати їх у коментарях.
- Як правильно створювати структуру бази даних
- Як динамічно отримувати коментарі з бази даних.
- Як зробити динамічне додавання коментарів, використовуючи ajax.
- Як зробити коментування на сайті
- Як задати колір відвіданих посилань
- Індекси в mysql
- Створення движка на mvc. Створюємо можливість додавання користувача в базу даних через адмін панель
- Google pinguin (гугл пінгвін)
- Запит sql на створення і видалення бази даних
- Імпорт бази даних в phpmyadmin
- Створення движка на mvc. Робимо можливість редагування і видалення користувачів.
- Скорочення url-адреси на php
- Створення движка на mvc. Починаємо робити чат.
- Sql-запити для роботи з таблицями
- Group by в sql
- Управління записами в phpmyadmin
- Клас для роботи з базою даних
- Створюємо сокращатель url. Частина 3.
- Управління таблицями в phpmyadmin
- Створення движка на mvc. Створюємо авторизацію.
- Створення движка на mvc. Починаємо роботу з базою даних.