<?php ob_start();
/*путь до текстовой БД*/
$file = 'urlShortening-sKqoMz9-dB_UYexQJxga.txt';
/*Использовать mod_rewrite? 0 - нет, 1 - да*/
$use_rewrite = 1;
/*языковые переменные*/
$l_url = 'URL';
$l_nourl = '<strong>Введен пустой URL!</strong>';
$l_yoururl = '<strong>Ваша короткий URL:</strong>';
$l_invalidurl = '<strong>Некорректный URL!</strong>';
$l_createurl = 'Укоротить ссылку!';
if(!is_writable($file) || !is_readable($file)) {
die('Не могу записать или прочитать БД. Пожалуйста, поменяйте CHMOD БД на 777 или 775 и повторите попытку!');
}
$action = trim($_GET['id']);
$action = (empty($action) || $action == '') ? 'create' : 'redirect';
$valid = "^(https?|ftp)\:\/\/([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?[a-z0-9+\$_-]+(\.[a-z0-9+\$_-]+)*(\:[0-9]{2,5})?(\/([a-z0-9+\$_-]\.?)+)*\/?(\?[a-z+&\$_.-][a-z0-9;:@/&%=+\$_.-]*)?(#[a-z_.-][a-z0-9+\$_.-]*)?\$";
$output = '';
if($action == 'create') {
if(isset($_POST['create'])) {
$url = trim($_POST['url']);
if($url == '') {
$output = $l_nourl;
} else {
if(eregi($valid, $url)) {
$fp = fopen($file, 'a');
fwrite($fp, "{$url}\r\n");
fclose($fp);
$id = count(file($file));
$dir = dirname($_SERVER['PHP_SELF']);
$filename = explode('/', $_SERVER['PHP_SELF']);
$filename = $filename[(count($filename) - 1)];
$shorturl = ($use_rewrite == 1) ? "http://{$_SERVER['HTTP_HOST']}{$dir}/{$id}" : "http://{$_SERVER['HTTP_HOST']}{$dir}/{$filename}?id={$id}";
$output = "{$l_yoururl} <a href='{$shorturl}'>{$shorturl}</a>";
} else {
$output = $l_invalidurl;
}
}
}
}
if($action == 'redirect') {
$urls = file($file);
$id = trim($_GET['id']) - 1;
if(isset($urls[$id])) {
header("Location: {$urls[$id]}");
exit;
} else {
die('Ошибка скрипта!');
}
}
?><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Укоротитель URL | КОНЬЯКОВ.ру</title>
</head>
<body>
<h1><a href="/pubs/">КОНЬЯКОВ.ру</a> | Укоротитель URL</h1>
<p>
<a href="http://konyakov.ru/pubs/urlShortening/1">Пример ссылки №1</a> |
<a href="http://konyakov.ru/pubs/urlShortening/2">Пример ссылки №2</a> |
<a href="http://konyakov.ru/pubs/urlShortening/3">Пример ссылки №3</a> |
<a href="http://konyakov.ru/pubs/urlShortening/4">Пример ссылки №4</a>
</p>
</body>
</html>
<?php ob_end_flush();?>