超简单的短网址php实现

简介: 网上搜出来的都太复杂了,还是自己写算了。 环境: php,apache2,linux 操作: 把代码粘贴到index.php放在一个只有1个字符(如u)作为文件夹名的二级目录里即可,为此目录增加写权限,图省事就chmod 777 u  (根目录也行,为避免影响别的文件可能要改改代码) 结果: 把http://blog.csdn.net/hursing变成http://127.0.0.1/u/1 原理: 1.通过form post获取要变短的url 2.把url放在一个javascript内写入文件,文件名按数字增长。

网上搜出来的都太复杂了,还是自己写算了。

环境:

php,apache2,linux

操作:

把代码粘贴到index.php放在一个只有1个字符(如u)作为文件夹名的二级目录里即可,为此目录增加写权限,图省事就chmod 777 u  (根目录也行,为避免影响别的文件可能要改改代码)

结果:

http://blog.csdn.net/hursing变成http://127.0.0.1/u/1

原理:

1.通过form post获取要变短的url

2.把url放在一个javascript内写入文件,文件名按数字增长。javascript的作用就是跳转到指定的url

可优化:

如果可以设置二级域名,那就把二级域名指向那个目录就好了,就不用多输入一个 u/


源代码:

<html>
	<head>
		<meta charset="utf-8" />
		<title>Shorten URL</title>
	</head>
	<body>
		URL to be shortened: (must include protocol like http:// or https:// etc.)<br />
		<form method="post">
			<textarea rows='3' name="url" style="width:100%"></textarea><br />
			<input type="submit" value="submit" />
		<form><br />
		<?php
			if (isset($_POST['url'])) {
				$origin = $_POST['url'];
				if (strlen($origin) > 10) {
					$filename = count(scandir('.')) - 3;	// strip php self . ..
					file_put_contents($filename, 
						'<script type="text/javascript">location.href="'.$origin.'"</script>');
					$shortened = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/'.$filename;
					echo 'Original URL is<br /><a href="'.$origin.'">'.$origin.'</a><br />'
						.'Shortened URL is<br /><a href="'.$shortened.'">'.$shortened.'</a>';
				} else {
					echo "The URL you entered is NOT valid.";
				}
			}
		?>
	</body>
</html>

生成的以数字为文件名的文件,只有一行:

<script type="text/javascript">location.href="http://blog.csdn.net/hursing"</script>


提交url后的结果页面截图:



转载请注明出处:http://blog.csdn.net/hursing

目录
相关文章
|
5月前
|
前端开发 PHP 区块链
博客屋网址导航自适应主题php源码
自适应各终端博客屋网址导航源码是一个以PHP+MySQL进行开发的个人博客网站导航源码
84 0
|
JSON PHP 数据格式
PHP中json传递请求字符串网址函数http_build_query()与parse_str(),将POST参数组转换拼接成GET请求链接
PHP中json传递请求字符串网址函数http_build_query()与parse_str(),将POST参数组转换拼接成GET请求链接
142 0
|
缓存 移动开发 NoSQL
php结合redis实现高并发下的抢购、秒杀功能的实例
php结合redis实现高并发下的抢购、秒杀功能的实例
265 0
|
PHP
github与gitee代码自动同步到服务器实现PHP项目自动部署webhooks
github与gitee代码自动同步到服务器实现PHP项目自动部署webhooks
522 0
github与gitee代码自动同步到服务器实现PHP项目自动部署webhooks
|
网络协议 Linux 网络安全
php实现websocket实时消息推送
php实现websocket实时消息推送
543 0
php实现websocket实时消息推送
|
PHP
php实现数字格式化,数字每三位加逗号的功能函数169856420=&gt;169,856,420
php实现数字格式化,数字每三位加逗号的功能函数169856420=&gt;169,856,420
220 0
|
PHP
PHP实现Workerman实例 高性能PHP Socket即时通讯框架
PHP实现Workerman实例 高性能PHP Socket即时通讯框架
437 0
|
消息中间件 PHP Windows
PHP实现php-amqplib/php-amqplib实例RabbitMq
PHP实现php-amqplib/php-amqplib实例RabbitMq
298 0
|
XML 移动开发 JSON
PHP使用yansongda/pay实现支付宝和微信的支付
PHP使用yansongda/pay实现支付宝和微信的支付
1094 0
|
NoSQL PHP Redis
PHP结合redis实现点赞功能
PHP结合redis实现点赞功能
150 0