Codice: Seleziona tutto
<?php
/**
* Simple URL Shortener
* Author: Technoforum.it
*/
// Simulated database to store URLs
$database = [];
/**
* Function to generate a short URL key
* @param string $url
* @return string
*/
function generateShortCode($url) {
return substr(md5($url), 0, 6); // Generate a 6-character hash
}
/**
* Function to shorten a URL
* @param string $url
* @param array &$db
* @return string
*/
function shortenUrl($url, &$db) {
$shortCode = generateShortCode($url);
$db[$shortCode] = $url;
return "https://short.ly/" . $shortCode;
}
/**
* Function to resolve a short URL to the original URL
* @param string $shortCode
* @param array $db
* @return string|null
*/
function resolveUrl($shortCode, $db) {
return $db[$shortCode] ?? null; // Return the original URL or null if not found
}
// Example Usage
$originalUrl = "https://technoforum.it/guide/php-url-shortener-example";
$shortUrl = shortenUrl($originalUrl, $database);
echo "Original URL: " . $originalUrl . "<br>";
echo "Shortened URL: " . $shortUrl . "<br>";
// Resolve the short URL
$shortCode = substr($shortUrl, strrpos($shortUrl, '/') + 1);
$resolvedUrl = resolveUrl($shortCode, $database);
if ($resolvedUrl) {
echo "Resolved URL: " . $resolvedUrl . "<br>";
} else {
echo "Short code not found.<br>";
}
?>
Funzione generateShortCode:
Crea un hash MD5 basato sull'URL originale e ne prende i primi 6 caratteri.
Questo serve come identificatore univoco per il link corto.
Funzione shortenUrl:
Genera un codice breve usando generateShortCode.
Memorizza l'URL originale nel "database" simulato (un array associativo in questo caso).
Restituisce un link corto come https://short.ly/{codice}.
Funzione resolveUrl:
Cerca il codice breve nel database simulato.
Se lo trova, restituisce l'URL originale; altrimenti, restituisce null.
Esempio di Esecuzione:
L'URL originale https://technoforum.it/guide/php-url-shortener-example viene accorciato in qualcosa come https://short.ly/abc123.
Quando si usa il codice breve abc123, lo script restituisce l'URL originale.
Output del Codice
Se esegui lo script, vedrai un output simile:
Codice: Seleziona tutto
Original URL: https://technoforum.it/guide/php-url-shortener-example
Shortened URL: https://short.ly/abc123
Resolved URL: https://technoforum.it/guide/php-url-shortener-example
Salva il file in url_shortener.php.
Modifica $originalUrl con qualsiasi URL lungo desideri accorciare.
Esegui lo script su un server PHP locale o online.
Puoi espandere lo script salvando i dati del "database" in un file o un database MySQL reale per un utilizzo pratico.
Questo esempio è un'ottima base per chi vuole imparare a gestire stringhe, hashing e semplici database in PHP!