当前位置: 首页 » 文章 » 软件 » 编程分享

怎样将长的URL压缩成短的URL

作者: wudimei   发布于: 2016-11-12 12:23:15
怎样将长的URL压缩成短的URL
java,.net,c++,js开发服务

短url其实是把长网址保存到数据库中,通过id或者key取出来的。

我们假设有这么一个表格:

Url网址表
 

id url
1 http://www.wudimei.com/company_website_design-a40.html
2 http://www.wudimei.com/E_commerce_Website_Design-a41.html

这样的网址确实比较长呀。

假设我们把网址放在 http://url.wudimei.com中

访问 http://url.wudimei.com/1 就可以获得第一条网址"http://www.wudimei.com/company_website_design-a40.html",访问http://url.wudimei.com/2就可以转向第二条,以此类推。

我用wudimei php框架写个示例。

app/routers.php
Route::get("/(:num)" ,"App\\Frontend\\IndexController");

 

App\\Frontend\\IndexController.php
use App\\Models\\Url;

class IndexController{

     public function index($id){

          $urlObj = Url::find( $id );
         header("location: ". $urlObj->url );  //跳转到数据库中的网址

 

    }

}
 

通过id访问网址的代码就完成了,其实你可以改一下,把id改成字母的,你可能要用到进制转换。

再来说一下保存网址。其实也很简单,查找一下网址是否存在,如果不存在则插入到数据库中。也可以为url加一个unique约束。
$url = "http://新的长网址";

$urlObj = Url::where("url", $url )->first(); //第一个结果行,返回为对象形式。
if( !isset( $urlObj->id )){

    $id= Url::inset( ["url"=> $url]);

}

如果有unique约束,直插入即可。

$id= Url::inset( ["url"=> $url]);

 

评论

Name(名字):*
Email:*
QQ:*
*
(*are required,带*号的要求输入。)


关注我们
新浪微博
联系我们
地址: 广东省深圳市坪山区
电话: +8613714715608  
QQ 290359552
         
点击这里给我发消息