IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

TinyURL.class.php

Skiyo 2010-06-02 22:54:42 累计浏览 4,562 次
本机暂存

写了一个简单的,可以应付一些简单的项目了。

以下是代码片段:
<?php
/**
 * TinyURL生成类
 *
 * @link http://skiyo.cn
 * @author Jessica
 * @license MIT
 */
class TinyURL {
    /**
     * 组成URL的大小写字母
     *
     * @var array
     */
    protected $alpha = array();
    /**
     * 数组数量
     *
     * @var int
     */
    protected $count = 0;
    /**
     * 构造器 生成URL数组
     *
     * @access public
     */
    public function  __construct() {
        $this->alpha = array_merge(range(0, 9), range(’a’, ’z’), range(’A’, ’Z’));
        $this->count = count($this->alpha);
    }
    /**
     * 通过数字生成唯一的URL
     *
     * @param int $num
     * @return string
     */
    public function getURL($num) {
        $num = (int)$num;
        $url = ’’;
        while($num >= 1) {
            $url .= $num < $this->count ? $this->alpha[$num] : $this->alpha[$num%$this->count];
            $num = (int)($num)/$this->count;
        }
        $url =  strrev($url);
        return $url;
    }
}
/**
 * @example
 */
$t = new TinyURL();
for($i=1;$i<=10000;$i++) {
    echo $t->getURL($i). ’<br />’;
}

同分类推荐文章

  1. Vibe新开源项目 - Vaala AI Gateway (2026-05-17 02:10:19)
  2. SmartPerfetto 架构文章 Q&amp;A:8 个深度技术问答 (2026-04-10 11:00:00)
  3. 让 AI 把我的 PHP 博客重写成 Go (2026-03-27 18:33:54)

查看更多 后端 文章 →

建议继续学习

  1. 使用gettext来支持PHP的多语言 (累计阅读 39,187)
  2. 程序员技术练级攻略 (累计阅读 35,197)
  3. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,086)
  4. Paypal接口详细代码(PHP版,非API接口) (累计阅读 19,341)
  5. 我的PHP,Python和Ruby之路 (累计阅读 13,066)
  6. include(“./file.php”)和include(“file.php”)区别 (累计阅读 12,721)
  7. 15个最好的免费开源电子商务平台 (累计阅读 12,461)
  8. Redis消息队列的若干实现方式 (累计阅读 12,002)
  9. 到底什么是MVC? (累计阅读 11,696)
  10. 整理了一份招PHP高级工程师的面试题 (累计阅读 11,448)