可用于短连接开发

随便找个PHP空间存放即可

点击查看代码
<html>
<head>
<meta charset="utf-8"/>
<title>简易·短网址</title> <!-- 防止post重复提交 -->
<script type="text/javascript">
if(window.history.replaceState)
{
window.history.replaceState(null, null, window.location.href)
}
</script>
</head> <?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 = "/";}
?> <body>
<p><b>要缩短的 URL(必须包含 http:// 或 https://)</b></p> <form method="post">
<textarea rows='3' name="url" style="width:100%"></textarea><br/><br/>
<input type="submit" style="font-size:16px;font-weight:900" value="缩短网址"/>
<form><br/><br/> <?php
if (isset($_POST['url'])){
$origin = $_POST['url']; if (strlen($origin) > 10 && strpos($origin, strval("http"))!==false && !is_dir($shortdir)){
mkdir(iconv("UTF-8", "GBK", $shortdir),0755,true);
$filename = $shortdir."/index.html"; file_put_contents($filename,
'<script type="text/javascript">location.href="'.$origin.'"</script>');
$shortened = "http://".$_SERVER['HTTP_HOST'].$rootpath.$shortdir; echo '<p>原来的 URL:<br/><a href="'.$origin.'" target="_blank">'.$origin.'</a></p>'
.'<p>缩短的 URL:<br/><a href="'.$shortened.'" target="_blank">'.$shortened.'</a></p>'; } else {
echo "<p><b>您输入的URL无效!</b></p>";
}
}
?> </body>
</html>

原项目地址

PHP

PHP极简短连接的更多相关文章

  1. netty使用从0到1

    本周强总在组内做了netty分享,内容相当不错,趁着这次分享记录的,以及以前研究,进行一下记录. java io形式存在三种,一种是BIO传统IO是阻塞IO,面向字符.字节服务都属于这一种.NIO官方 ...

  2. STC12C5A60S2 51单片机最小系统

                                                                                    STC12C5A60S2 一.根据芯片文 ...

  3. 计算机系统2->从芯片说起 | 芯片怎样诞生

    这部分数字逻辑课上老师在讲CMOS部分时有讲过,当时在课堂上放了一个全英的视频,没怎么看懂,现在在研究计算机系统,自底层说起,也得从这讲起. 主要参考: <嵌入式C语言自我素养> b站相关 ...

  4. SQL中的连接(极客时间)

    SQL中的连接 关系型数据库的核心之一就是连接, 而在不同的标准中, 连接的写法上可能有区别, 最为主要的两个SQL标准就是SQL92和SQL99了, 后面的数字表示的是标准提出的时间. SQL92中 ...

  5. mysql连接卡死,很多线程sleep状态,导致CPU中mysqld占用率极高

    关闭所有 .................................. .连接: ##把全部的MySQL连接kill掉for i in $(mysql -uroot -p123456 -Bse ...

  6. office 2010 自动连接网络打印机的问题(保存或者打开极慢) 解决方法

    将默认打印机设为本地打印机或 Microsoft XPS Document Writer

  7. 每个极客都应该知道的Linux技巧

    每个极客都应该知道的Linux技巧 2014/03/07 | 分类: IT技术 | 0 条评论 | 标签: LINUX 分享到:18 本文由 伯乐在线 - 欣仔 翻译自 TuxRadar Linux. ...

  8. 极路由2(极贰)ROOT并刷了OpenWrt

    绕过官方的ROOT 查了一下root教程, 如果还需要保留保修, 则需要自己想办法回退版本, 下载搜狐插件到sd卡, 找个linux系统修改sd卡上程序的执行权限, 然后才能开启ssh, 具体的方法可 ...

  9. 2016第七季极客大挑战Writeup

    第一次接触CTF,只会做杂项和一点点Web题--因为时间比较仓促,写的比较简略.以后再写下工具使用什么的. 纯新手,啥都不会.处于瑟瑟发抖的状态. 一.MISC 1.签到题 直接填入题目所给的SYC{ ...

随机推荐

  1. 2021.03.20【NOIP提高B组】模拟 总结

    区间 DP 专场:愉快爆炸 T1 题目大意 有 \(n\) 个有颜色的块,连续 \(k\) 个相同颜色的就可以消掉 现在可以在任意位置插入任意颜色的方块,问最少插入多少个可以全部抵消 题解 先把连续的 ...

  2. HashMap高阶用法,十倍提升开发效率

    HashMap在工作中使用非常频繁,其实在JDK1.8的时候新增一些更高阶的用法,熟练使用这些方法可以大大提升开发效率,写出更简洁优美的代码. 1. get方法指定返回默认值(getOrDefault ...

  3. Markdown的使用指南

    # Markdown学习 ------ 以下符号均是英文输入法下的 ## 1.标题 几级标题就写 几个#号 加 空格 加 标题内容 就可以 例如: ###加空格加三级标题效果如下 ### 三级标题 # ...

  4. 用WindowsAppSDK(WASDK)优雅的开发上位机应用

    C#开发上位机应用的一些选择 如果你不想看介绍,可以直接跳到优雅开发示例那里. 1. WASDK(WinUI 3) Windows 应用 SDK 是一组新的开发人员组件和工具,它们代表着 Window ...

  5. 无语——真的好用到不行的7个Python小技巧

    本文总结了我几个我在学习python过程中,用到的几个超好用的操作,这里分享给大家,我相信你们也会非常喜欢,目录如下.这里提前索要再看,记得点一点再看哦.这只是其中一些技巧,以后会慢慢和大家分享. 1 ...

  6. 使用navicat连接远程linux mysql数据库出现10061

    重启mysql服务 两种方式 1.使用 service 启动:service mysql restart 2.使用 mysqld 脚本启动:/etc/inint.d/mysql restart

  7. CentOS7系统DNS主从配置

    CentOS7系统DNS主从配置:一.DNS服务器正向解析:1.1 基础环境:主机IP          主机名      操作系统    用途192.168.0.110   master      ...

  8. IO流原理及流的分类

    IO原理 I/O是Input/Output的缩写, I/O技术是非常实用的技术,用于 处理设备之间的数据传输.如读/写文件,网络通讯等. Java程序中,对于数据的输入/输出操作以"流(st ...

  9. 微信小程序接口请求/form-data/单文件、多文件上传

    1.普通的微信请求封装 1 const http = (options) =>{ 2 return new Promise((resolve,reject) => { 3 wx.reque ...

  10. cenos 7 zookeeper Error contacting service. It is probably not running

    zkServer.sh status 命令查看zookeeper集群的状态,发现异常 Error contacting service. It is probably not running 最开始以 ...