可能是一个好用的短地址服务(附源码) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Caringor
V2EX    分享创造

可能是一个好用的短地址服务(附源码)

  •  
  •   Caringor 2017 年 8 月 26 日 6245 次点击
    这是一个创建于 3070 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一直想搭一个自己的短地址服务,奈何懒癌末期拖了好久。最近看见身边的朋友也做了一个,忍不住了就用 PHP 实现了一个简易的轮子。

    相比同类服务,CRZ 拥有简洁的用户界面、无广告、永久免费,且开放网站源码。

    项目地址:https://crz.im/

    Github:https://github.com/Caringor/CRZ.im <-- 可耻地来骗 Star

    31 条回复    2017-08-31 09:58:46 +08:00
    jeffson
        1
    jeffson  
       2017 年 8 月 26 日
    UP UP UP
    a570295535
        2
    a570295535  
       2017 年 8 月 26 日   1
    很坑啊,你这 https 的链接转换后直接 404 啊 https://crz.im/e7c9
    Caringor
        3
    Caringor  
    OP
       2017 年 8 月 26 日 via Android
    @a570295535 伪静态有点问题,回去处理下~
    tSQghkfhTtQt9mtd
        4
    tSQghkfhTtQt9mtd  
       2017 年 8 月 26 日 via Android
    继续用 Yourls (
    soeasy
        5
    soeasy  
       2017 年 8 月 26 日
    haha~我也来发一个,速跳短网址: https://st.im/
    SaoHangBaBa
        6
    SaoHangBaBa  
       2017 年 8 月 26 日
    Bug 休好了,记得通知我。。。。
    lzhr
        7
    lzhr  
       2017 年 8 月 26 日
    可以自定义吗
    whatsmyip
        8
    whatsmyip  
       2017 年 8 月 26 日
    http://s.newnius.com/

    没有统计功能的短网址服务都是渣,所以我的也是渣^_^
    ctt
        9
    ctt  
       2017 年 8 月 27 日 via iPad
    没有统计功能,所以我就用 html 和几行 js 实现了短地址,就是得多了个#。
    jiujiu5151
        10
    jiujiu5151  
       2017 年 8 月 27 日 via Android   1
    想看下短网址的生成算法,结果那类里的方法:
    // 清空短地址
    public function clean_urls() {
    $del = $this->db->delete('urls');
    if($del) return true;
    return false;
    }

    是不是可以直接 return (bool) $this->db->delete('urls');

    还有上面几个方法,已经使用三元运算符,也是可以直接 return
    akaayy
        11
    akaayy  
       2017 年 8 月 27 日 via Android
    希望增加可以自定义的功能
    doubleflower
        12
    doubleflower  
       2017 年 8 月 27 日 via Android
    现在这个年代,介面应该是移动优先,毕竟大部分人都是用手机打开。参考一下楼下贴的那个 st.im
    akaayy
        13
    akaayy  
       2017 年 8 月 27 日 via Android
    @whatsmyip
    是否开源?
    whatsmyip
        14
    whatsmyip  
       2017 年 8 月 27 日   1
    akaayy
        15
    akaayy  
       2017 年 8 月 27 日 via Android
    @whatsmyip
    能写出来就是牛。

    我还想问你和楼上做短网址的各位,怎么避免被恶意利用?
    我原来也用 yourls 做了一个短网址站,但是过了一段时间被 qq 列入了危险名单,到后台一看果然有很多乱七八糟的地址。吓得赶紧关了。

    求应付方法?
    zjqzxc
        16
    zjqzxc  
       2017 年 8 月 27 日
    @whatsmyip 第一眼看过去看到了 redis 字样,准备看看你的缓存淘汰算法用的啥。。。看了半天才发现没写完
    话说,random.php 里,为啥要自己写个 randomInt,rand()函数有啥问题么?
    whatsmyip
        17
    whatsmyip  
       2017 年 8 月 27 日
    @akaayy
    我的也被用于过 1024,不过使用的人比较少

    短网址确实存在滥用的情况,所以打算下一版本切换域名。

    真要防这个,也不是没有办法。
    一个就是参考 bat 的短网址服务,设置域名白名单
    另外一个是,封掉 qq 的 robot ( UA 等,分析日志吧)

    其他的比较容易实现的(自动化)办法,暂时想不到
    whatsmyip
        18
    whatsmyip  
       2017 年 8 月 27 日
    @zjqzxc

    额,确实没用上缓存,比较简陋。redis 是用来防 spam 的。。。

    好久以前写的了,这个应该是生成 unique 串的,rand 冲突可能性比较高吧。
    KWPr0
        19
    KWPr0  
       2017 年 8 月 27 日
    厚着脸皮放上自己搞的破烂 301.tn
    lengxx
        20
    lengxx  
       2017 年 8 月 27 日
    点击后并没有生成短地址,什么都没发生。。
    Caringor
        21
    Caringor  
    OP
       2017 年 8 月 27 日
    @SaoHangBaBa @a570295535 很抱歉昨天没什么时间处理,今天把问题修好了。

    @lengxx 刚刚在改 Nginx 的配置,现在应该好了。

    @doubleflower 这个之后会改进的。
    rogwan
        22
    rogwan  
       2017 年 8 月 27 日 via Android
    这个 4 位短网址,重复率高,不是很快就失效啊
    Marfal
        23
    Marfal  
       2017 年 8 月 27 日 via Android
    不考虑 Redis ?
    hxsf
        24
    hxsf  
       2017 年 8 月 27 日
    另外,貌似没看见过期之类相关的代码啊,没考虑么?
    DlYgod
        25
    DlYgod  
       2017 年 8 月 27 日   1
    千岁姐姐好棒!
    Caringor
        26
    Caringor  
    OP
       2017 年 8 月 27 日 via Android
    @rogwan 其实可以通过修改配置文件把 ID 拓展到八位,暂时觉得四位够用了。
    Caringor
        27
    Caringor  
    OP
       2017 年 8 月 27 日 via Android
    @hxsf 嗯,没考虑,打算做永久的。


    @Marfal SQLite 没必要配合 Redis 吧感觉…
    hxsf
        28
    hxsf  
       2017 年 8 月 27 日
    @Caringor #27 永久? 无限的输入对应 有限的输出,迟早用完的吧。
    xspoco
        29
    xspoco  
       2017 年 8 月 28 日
    好像不适配移动端?
    majiawei
        30
    majiawei  
       2017 年 8 月 30 日
    一年多以前写了一个,公司内部用的,最开始的版本的功能跟你这个差不多,但后面实际用起来,优化了不少东西,主要都是数据的记录,从单纯的读写 MySQL 到后面的 Redis 缓存,数据方面除了算点击数之外,每个单次点击也会记录具体的日志,后台做了些报表功能,对运维来说这些数据有时候还是很有用的,说了一堆也不知道为什么要说这些哈哈哈哈
    Caringor
        31
    Caringor  
    OP
       2017 年 8 月 31 日
    @majiawei 哈哈,想起了那篇做轮子决定午饭去哪家吃的软文了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2616 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 15:26 PVG 23:26 LAX 07:26 JFK 10:26
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86