可用于短连接开发

随便找个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. .NET中的迭代器(Iterator)

    更新记录 本文迁移自Panda666原博客,原发布时间:2021年6月30日. 一.迭代器介绍 C#2.0开始,我们可以使用迭代器(iterator).编译器自动把我们定义的迭代器生成 可枚举类型 或 ...

  2. BUUCTF-假如给我三天光明

    假如给我三天光明 打开压缩包可以看到一个海报,下方有盲文显示,通过对照表得知 盲文翻译为kmdonowg 通过盲文翻译得到的字符串解压压缩包得到一个音频文件 使用Audacity打开,看样子应该是摩斯 ...

  3. SAP APO-供应链监控

    供应链监控(SCM)是一种有效的工具,可以为供应商和购买者做出明智的决策. 供应链流程中的关键人物基于供应链监控做出决策. 供应链包括两个工具- 库存需求清单MD04 物流信息系统(LIS) 事务MD ...

  4. 基于JavaFX图形界面演示的迷宫创建与路径寻找

    事情的起因是收到了一位网友的请求,他的java课设需要设计实现迷宫相关的程序--如标题概括. 我这边不方便透露相关信息,就只把任务要求写出来. 演示视频指路: 视频过审后就更新链接 完整代码链接: 网 ...

  5. RPA工单查询和下载流程机器人

    1.登录业务系统,输入用户名和密码 2.进入下载模块 3.输入下载查询条件 4.进入文件明细单 5.下载文件 视频地址:https://www.bilibili.com/video/BV1964y1D ...

  6. UiPath文本操作Set Text的介绍和使用

    一.Set Text的介绍 向输入框/文本框写入文本的一种操作 二.Set Text在UiPath中的使用 1.打开设计器,在设计库中新建一个Sequence,为序列命名及设置Sequence存放的路 ...

  7. python小题目练习(六)

    需求:编写一个猜数字的小游戏,随机生成1到10(包含1和10)之间的数字作为基准数,玩家每次通过键盘输入一个数字,如果输入的数字跟基准数相同,则闯关成功,否则重新输入,如果玩家输入的是-1,则表示退出 ...

  8. 【cartogarpher_ros】二: 官方Demo的介绍与演示

    上一节我们介绍了在linux中快速安装集成ros环境的cartographer. 本节我们会来跑一些官方demo,用于测试cartographer是否正确安装,顺便看看cartographer的建图与 ...

  9. 什么?让每一个开源项目更安全?啊?还有IDE工具?难道是它?

    背景 入编程界6年来,大大小小的安全漏洞是真滴听了不少,xxx通过日志入侵了,xxxx通过请求入侵了,等等等等. 近期fastJson又报安全漏洞,敢巧自己又"被"跳槽到了新公司, ...

  10. 159_模型_Power BI 地理分析之形状地图

    159_模型_Power BI 地理分析之形状地图 声明以下地图元素仅供学习交流所用,如需地图公开使用请提前做好报审工作. 一.背景 当企业的体量达到一定体量的时候,保持稳定的增长是非常重要的事情.本 ...