什么是短地址?如何用PHP生成与使用短地址…

Posted 黑马程序员视频库

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是短地址?如何用PHP生成与使用短地址…相关的知识,希望对你有一定的参考价值。

黑马程序员视频库

传智播客旗下互联网资讯、学习资源免费分享平台



一、短网址功能介绍


短网址(Short URL) ,顾名思义就是在形式上比较短的网址。通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流。目前已经有许多类似服务,借助短网址您可以用简短的网址替代原来冗长的网址,让使用者可以更容易的分享链接。



二、短网址的好处

微博限制字数为140字一条,那么如果我们需要发一些连接上去,但是这个连接非常的长,以至于将近要占用我们内容的一半篇幅,这肯定是不能被允许的,所以短网址应运而生了。


* 用户友好,便于管理


* 访问统计,数据分析

我们可以对一系列的网址进行流量,点击等统计,挖掘出大多数用户的关注点,这样有利于我们对项目的后续工作更好的作出决策。


三、PHP简易短网址功能实现


1、了解短网址实现的原理


目前,百度、新浪、腾讯、淘宝等大企业都提供了短网址生成功能,这里我们以百度提供的为例(官网:http://dwz.cn/)来分析其操作:



什么是短地址?如何用PHP生成与使用短地址…



什么是短地址?如何用PHP生成与使用短地址…


更多细节请参考:

https://www.zhihu.com/question/29270034/answer/46446911


2、短网址标识符生成




0-9、a-z、A-Z共计62个字符,那么算法我们就可以采用62进制来进行运算。


为了方便操作,此处可以将进制互相转化的方法封装成一个函数库文件。

附1:10进制转化成62进制的方法


什么是短地址?如何用PHP生成与使用短地址…


附2:62进制转化成10进制的方法

什么是短地址?如何用PHP生成与使用短地址…


3、创建短网址需要的虚拟主机

① 此处以LAMP环境为例,因此需要配置一个Apache虚拟主机:

定义站点根目录路径为:H:webrootsubjects80228

定义需要使用的域名为:u.cn

虚拟主机配置文件中具体配置代码参考如下:


什么是短地址?如何用PHP生成与使用短地址…

配置完成之后重启/启动Apache。


② 给域名设置本地Hosts解析

在hosts文件中添加以下一行代码:

127.0.0.1    www.u.cn u.cn


③ 测试访问,验证虚拟主机是否配置成功


什么是短地址?如何用PHP生成与使用短地址…


注意:为了方便使用Ajax,建议在表单页面中引入jQuery库来使用jQuery封装的Ajax。


什么是短地址?如何用PHP生成与使用短地址…


实现的展示效果:


什么是短地址?如何用PHP生成与使用短地址…


5、创建需要的数据库与表

定义库名:phpurl

定义表名:urlmap

注意:由于我们使用的62进制中某个字母的大写、小写形式所表达的值是不一样的,因此数据是区分大小写的,这就要求我们要么在存储的时候就区分大小写或者在操作CURD的时候区分大小写,二选一即可,此处以后者为例。


附:数据表DLL语句

什么是短地址?如何用PHP生成与使用短地址…


6、编写make.php代码文件

① 该文件的作用是接收ajax请求并生成短网址,最后返回给ajax请求。

说明:简易小功能,demo中就不对数据的有效性进行过多判断,当然如果打算上线或集成到项目中去为了安全,对应的验证还是必不可少的。


什么是短地址?如何用PHP生成与使用短地址…

什么是短地址?如何用PHP生成与使用短地址…


② 继续完善静态ajax部分,完成ajax响应的数据回显

什么是短地址?如何用PHP生成与使用短地址…


效果:

什么是短地址?如何用PHP生成与使用短地址…



7、创建分布式配置文件实现重写


什么是分布式配置文件?

分布式配置文件是Apache配置文件的一种类型,期文件名为“.htaccess”,一般放在站点目录中,可以是根目录,也可以是里层目录。期作用是辅助主配置文件实现对站点的自定义化配置。


什么是重写?为什么短网址功能需要重写URL?


① 开启Apache的mod_rewrite.so模块(去掉前面的“#”注释)

什么是短地址?如何用PHP生成与使用短地址…


② 编写.htaccess文件

什么是短地址?如何用PHP生成与使用短地址…


8、创建入口文件实现短网址的还原并实现跳转


什么是短地址?如何用PHP生成与使用短地址…


解决访问问题步骤:

① 创建入口文件index.php,并且编写对应的代码

注意:由于3.7章节已经设置了重写,那么此时“http://u.cn/1”已经等效于“http://u.cn/index.php?uid=1”。因此可以直接使用$_GET[xxx]的形式来获取参数。


什么是短地址?如何用PHP生成与使用短地址…


② 测试访问本地短网址http://u.cn/1 ,观察访问效果

什么是短地址?如何用PHP生成与使用短地址…

根据上述结果,得知短网址已经成功实现预期功能。


③测试目前不存在的短网址http://u .cn/123 ,观察效果

什么是短地址?如何用PHP生成与使用短地址…

根据上述结果,得知访问不存在的短网址会产生404错误,符合预期。


四、总结


至此,使用php来做的短网址功能就已经实现,虽然没有验证数据的有效性,但是“麻雀虽小五脏俱全”,用起来效果和预期一样。


当我们遇到一些新奇的功能时,可以多去猜测、分析、研究下其实现的流程,还可以去参考一下相关的资料,技术的探索过程是很奇妙的。


更多精彩推荐,请关注我们
什么是短地址?如何用PHP生成与使用短地址…
向程序员致敬


(点击图片可查看)


▼点击 阅读原文 加程序员大咖群

以上是关于什么是短地址?如何用PHP生成与使用短地址…的主要内容,如果未能解决你的问题,请参考以下文章

请教如何用php提取图片url地址

简单获取新浪短网址API接口的方法(附PHP请求示例)

网易短网址怎么生成?

最新官方新浪短网址生成API接口与在线短网址缩短工具分享

laravel路由 实现短连接生成及跳转(php 301重定向)

10-2 系统设计真题解析:短网址系统的设计与实现