chocopoche / short_url
又一个短网址应用!
v1.0.0
2013-04-03 14:29 UTC
Requires
- aferrandini/phpqrcode: dev-master
- doctrine/dbal: 2.2.*
- google/google-api-php-client: 0.6.*
- silex/silex: 1.0.*@dev
- symfony/config: ~2.1
- symfony/form: ~2.1
- symfony/translation: ~2.1
- symfony/twig-bridge: ~2.1
- symfony/validator: ~2.1
- twig/twig: >=1.8,<2.0-dev
This package is not auto-updated.
Last update: 2024-09-14 15:16:27 UTC
README
又一个为 Silex PHP 框架构建的 URL 缩短器!
安装
首先,安装包及其依赖项
$ git clone https://github.com/chocopoche/short_url.git
$ cd short_url
$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar update
你可能需要修复 vendor/google 目录的权限,因为它在解压 tarball 后不可供世界读取。
$ chmod -R a+rX vendor/google
然后创建数据库,以下是如何使用 sqlite 数据库来创建数据库的方法
$ app/console db:create
$ app/console db:import-schema
运行测试
$ vendor/bin/phpunit
为了让用户能够验证自己的身份并跟踪其网址,通过在 控制台 上创建应用程序来启用 Google OAuth2。
在 app/bootstrap.php
中配置您的数据库,并在 config/app.php
中配置您的 GoogleOAuth 客户端 ID 和密钥。
功能
URL 别名使用 SQL 行 ID 整数生成,该整数通过一个 双向加密(Feistel 密码)进行哈希,该密码将整数空间映射到自身。内容来自 https://gist.github.com/baldurrensch/3710618
然后使用一个可配置的字母表的二元算法将生成的整数映射。这些函数来自 http://www.flickr.com/groups/api/discuss/72157616713786392/。
这样就不需要在数据库中存储短代码,并且生成的短代码仅通过阅读是无法解码的(我的意思是,你不能简单地递增字符串来找到下一个记录)。
- /{短代码} 重定向到长网址
- /{短代码}.png 显示二维码
- /{短代码}/details 显示缩网址的详细信息
- /last/ 重定向到最后一个缩网址
- /shorten/ 可使用 JavaScript 书签工具
- /mine/ 当您进行身份验证时,缩网址将与您的账户关联,您将能够看到您最后缩网址。
书签
生成链接的 HTML 代码
<a href="javascript:location='http://tmb.io/shorten/?url='+encodeURIComponent(location.href); void 0" class="btn btn-success">Shorten</a>
或者只需添加一个带有以下 URL 的书签
javascript:location='http://tmb.io/shorten/?url='+encodeURIComponent(location.href); void 0
实时演示
实时演示可在 tmb.io 上找到。
API 文档
可在 tmb.io/doc/ 找到。