什么是短地址?如何用PHP生成与使用短地址…
Posted 黑马程序员视频库
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是短地址?如何用PHP生成与使用短地址…相关的知识,希望对你有一定的参考价值。
黑马程序员视频库
传智播客旗下互联网资讯、学习资源免费分享平台
一、短网址功能介绍
短网址(Short URL) ,顾名思义就是在形式上比较短的网址。通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流。目前已经有许多类似服务,借助短网址您可以用简短的网址替代原来冗长的网址,让使用者可以更容易的分享链接。
二、短网址的好处
微博限制字数为140字一条,那么如果我们需要发一些连接上去,但是这个连接非常的长,以至于将近要占用我们内容的一半篇幅,这肯定是不能被允许的,所以短网址应运而生了。
* 用户友好,便于管理
* 访问统计,数据分析
我们可以对一系列的网址进行流量,点击等统计,挖掘出大多数用户的关注点,这样有利于我们对项目的后续工作更好的作出决策。
三、PHP简易短网址功能实现
1、了解短网址实现的原理
目前,百度、新浪、腾讯、淘宝等大企业都提供了短网址生成功能,这里我们以百度提供的为例(官网:http://dwz.cn/)来分析其操作:
更多细节请参考:
https://www.zhihu.com/question/29270034/answer/46446911
2、短网址标识符生成
0-9、a-z、A-Z共计62个字符,那么算法我们就可以采用62进制来进行运算。
为了方便操作,此处可以将进制互相转化的方法封装成一个函数库文件。
附1:10进制转化成62进制的方法
附2:62进制转化成10进制的方法
3、创建短网址需要的虚拟主机
① 此处以LAMP环境为例,因此需要配置一个Apache虚拟主机:
定义站点根目录路径为:H:webrootsubjects80228
定义需要使用的域名为:u.cn
虚拟主机配置文件中具体配置代码参考如下:
配置完成之后重启/启动Apache。
② 给域名设置本地Hosts解析
在hosts文件中添加以下一行代码:
127.0.0.1 www.u.cn u.cn
③ 测试访问,验证虚拟主机是否配置成功
注意:为了方便使用Ajax,建议在表单页面中引入jQuery库来使用jQuery封装的Ajax。
实现的展示效果:
5、创建需要的数据库与表
定义库名:phpurl
定义表名:urlmap
注意:由于我们使用的62进制中某个字母的大写、小写形式所表达的值是不一样的,因此数据是区分大小写的,这就要求我们要么在存储的时候就区分大小写或者在操作CURD的时候区分大小写,二选一即可,此处以后者为例。
附:数据表DLL语句
6、编写make.php代码文件
① 该文件的作用是接收ajax请求并生成短网址,最后返回给ajax请求。
说明:简易小功能,demo中就不对数据的有效性进行过多判断,当然如果打算上线或集成到项目中去为了安全,对应的验证还是必不可少的。
② 继续完善静态ajax部分,完成ajax响应的数据回显
效果:
7、创建分布式配置文件实现重写
什么是分布式配置文件?
分布式配置文件是Apache配置文件的一种类型,期文件名为“.htaccess”,一般放在站点目录中,可以是根目录,也可以是里层目录。期作用是辅助主配置文件实现对站点的自定义化配置。
什么是重写?为什么短网址功能需要重写URL?
① 开启Apache的mod_rewrite.so模块(去掉前面的“#”注释)
② 编写.htaccess文件
8、创建入口文件实现短网址的还原并实现跳转
解决访问问题步骤:
① 创建入口文件index.php,并且编写对应的代码
注意:由于3.7章节已经设置了重写,那么此时“http://u.cn/1”已经等效于“http://u.cn/index.php?uid=1”。因此可以直接使用$_GET[xxx]的形式来获取参数。
② 测试访问本地短网址http://u.cn/1 ,观察访问效果
根据上述结果,得知短网址已经成功实现预期功能。
③测试目前不存在的短网址http://u .cn/123 ,观察效果
根据上述结果,得知访问不存在的短网址会产生404错误,符合预期。
四、总结
至此,使用php来做的短网址功能就已经实现,虽然没有验证数据的有效性,但是“麻雀虽小五脏俱全”,用起来效果和预期一样。
当我们遇到一些新奇的功能时,可以多去猜测、分析、研究下其实现的流程,还可以去参考一下相关的资料,技术的探索过程是很奇妙的。
(点击图片可查看)
▼点击 阅读原文 加程序员大咖群
以上是关于什么是短地址?如何用PHP生成与使用短地址…的主要内容,如果未能解决你的问题,请参考以下文章