short
short copied to clipboard
🔗基于 PHP 简单实现的短链接在线生成工具
çé¾æ¥çæ
å¨çº¿æ¼ç¤º: 0x64.cn
åä¸ä¸ªåºäº PHP ç®åå®ç°ççé¾æ¥å¨çº¿çæå·¥å ·ï¼ç®åé ç½®ï¼å¿«éæ建ã
é ç½®
å®è£
1. ä¸è½½æºç ï¼é¨ç½²è³æå¡å¨ï¼ç¯å¢ PHP >= 5.6
ï¼éå®è£
PDO
æ©å±ã
2. é ç½® Nginxï¼åèå¦ä¸ï¼
server {
listen 80;
server_name 0x64.cn;
root /www/0x64.cn;
index index.php index.html index.htm;
access_log /dev/null;
error_log /var/log/nginx/nginx.0x64.error.log warn;
# 伪éæ å¿
é¡»
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# sqlite æ°æ®åºæ件ç¦æ¢è®¿é® å¿
é¡»
location ~ /(data\.db) {
deny all;
}
location ~ \.php$ {
fastcgi_pass unix:/dev/shm/php-cgi.sock;
include fastcgi-php.conf;
include fastcgi_params;
}
}
3. é ç½®æ°æ®åºï¼æ¯æ MySQL å SQLiteã
3.1 MySQL é ç½®
3.1.1 ç¼è¾ index.php
<?php
// æ°æ®åºè¿æ¥å符串 host 主æºå; dbname æ°æ®åºå; charset å符éç¼ç
define('DB_DSN', 'mysql:host=localhost;dbname=short;charset=utf8mb4');
// æ°æ®åºç¨æ·å
define('DB_USER', 'root');
// æ°æ®åºå¯ç
define('DB_PASSWD', '123456');
3.1.2 å¯¼å ¥æ°æ®åºè¡¨ç»æ
使ç¨å·¥å
·ï¼NavicatãPHPMyAdminçï¼è¿æ¥ MySQL æå¡ï¼å建æ°æ®åº short
ï¼å¹¶å¯¼å
¥ mysql.db.sql
3.2 SQLite é ç½®ï¼
3.2.1 ç¼è¾ index.php
<?php
// æ°æ®åºè¿æ¥å符串 host 主æºå; dbname æ°æ®åºå; charset å符éç¼ç
define('DB_DSN', 'sqlite:data.db');
// æ°æ®åºç¨æ·å
define('DB_USER', null);
// æ°æ®åºå¯ç
define('DB_PASSWD', null);
3.2.2 å建æ°æ®åºæ件
å¤å¶ sqlite.db.exp
为 data.db
4. é ç½®çé¾æ¥å符é¿åº¦
// çæçé¾æ¥éæºå符é¿åº¦ é»è®¤ 6 ä½ ä¸è¶
è¿ 32 ä½
define('CODE_LENGTH', 6);
API
çæçé¾æ¥
ä½ å¯ä»¥éè¿åå访é®é¡µé¢æ使ç¨æ¥å£çæ URLï¼å°å为 /
ï¼è¯·æ±æ¹å¼ä¸º POST
ï¼åæ°ä¸º url
å³ä½ çé¿é¾æ¥ï¼code
为èªå®ä¹çé¾æ¥ï¼å¯éï¼ã
# èªå¨çæçé¾æ¥
$ curl -X POST -d 'url=http://github.com' http://0x64.cn
{
"code": 0,
"msg": "OK",
"data": {
"short": "0x64.cn/8FuHf5",
"generic": "http://0x64.cn/8FuHf5",
"long": "https://0x64.cn/8FuHf5"
}
}
# èªå®ä¹çé¾æ¥
$curl -X POST -d 'url=http://github.com&code=github' http://0x64.cn
{
"code": 0,
"msg": "OK",
"data": {
"short": "0x64.cn/github",
"generic": "http://0x64.cn/github",
"long": "https://0x64.cn/github"
}
}
å段 | åè®® | å ¼å®¹æ§ | å符é¿åº¦ |
---|---|---|---|
short | èªå¨è¯å« | è¾å·® | æç |
generic | http | è¾å¥½ | è¾ç |
long | https | 好 | è¾é¿ |
TODO List
- åå°ç®¡ç
- ååé»åå
- å¯ç 访é®