极简短网址
前言
好多短链接网站都消失了,为了安全最好自己建立一个,此代码极为精简。
实现方式
可用于短连接开发
随便找个PHP空间存放即可
[code]
<?php
//防止频繁提交
session_start();
$seconds = '60'; //时间段[秒]
$refresh = '6'; //提交次数
$blocktime = '600'; //封禁时间
$cur_time = time();
//超过提交频率封禁浏览器 重启浏览器可解封
if($_SESSION['refresh_times'] > 999 && $cur_time - $_SESSION['last_time'] < $blocktime ){
exit('<p><b>请勿频繁提交,设备已封禁!稍后再试。</b></p>');
}
if(isset($_SESSION['last_time'])){
$_SESSION['refresh_times'] += 1;
}else{
$_SESSION['refresh_times'] = 1;
$_SESSION['last_time'] = $cur_time;
}
if($cur_time - $_SESSION['last_time'] < $seconds){
if($_SESSION['refresh_times'] >= $refresh){
//超过提交频率 标记X
$_SESSION['refresh_times'] = 9999;
}
}else{
$_SESSION['refresh_times'] = 0;
$_SESSION['last_time'] = $cur_time;
}
?>
<?php
//生成随机文件夹(短链接)名称
function GetRandStr($len)
{
$chars = array(
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
"l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
"w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",
"H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
"S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2",
"3", "4", "5", "6", "7", "8", "9"
);
$charsLen = count($chars) - 1;
shuffle($chars);
$output = "";
for ($i=0; $i<$len; $i++)
{
$output .= $chars[mt_rand(0, $charsLen)];
}
return $output;
}
//$dirabc = xxxxx;
$dirabc = GetRandStr(4);
$dir123 = rand(0,9);
//当文件夹(短链接)存在时 增加一位
if(!is_dir($dirabc)){
$shortdir = $dirabc;
} else {
$shortdir = $dirabc.$dir123;
}
?>
<?php
//判断程序根目录路径
$dirpath = dirname($_SERVER['PHP_SELF']);
$rootpath = dirname($_SERVER['PHP_SELF'])."/";
if ($dirpath == "/"){$rootpath = "/";}
?>
要缩短的 URL(必须包含 http:// 或 https://)
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。