php скрипт сокращения ссылок

При sms рассылках важен размер ссылки, которая будет в тексте сообщения.

В базе данных создается отдельная таблица для хранения короткого урла, и соответствующего ему длинного.

В данную таблицу происходит запись по определенному событию:

function generateRandomString($length = 3) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[random_int(0, $charactersLength - 1)];
    }
    return $randomString;
}
$short_url = generateRandomString();	
global $wpdb;
$table_name = $wpdb->prefix.'urls';
$data = ['url' => $long_url, 'short_url' => $short_url];
$wpdb->insert($table_name, $data);

Для обработки укороченной ссылки создается специальный файл short.php со следующим кодом:

<?php
include( 'wp-load.php' );
global $wpdb;
$table_name = $wpdb->prefix.'urls';
$short_url = $_GET['c'];
$result = $wpdb->get_results ( "
    SELECT url 
    FROM  $table_name
        WHERE short_url = '$short_url'
" );
$long_url = '';
if($result){
    foreach($result as $item){
        $long_url = $item->url;
    }
}
header('location: '.$long_url);
?>

В смс будет урл содержащие short.php?c=code Тут с помощью GET параметра ‘c’ передается идентификатор короткой строки, по которому будет делаться запрос в БД и получаться соответствующая ему длинная строка.

После получения делается редирект с короткой ссылки на длинную

Рубрикиphp

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *