4 changed files with 455 additions and 2 deletions
			
			
		@ -1,3 +1,54 @@ | 
				
			|||||||
# xw.al | 
					用于生成短链接。 | 
				
			||||||
 | 
					
 | 
				
			||||||
xw.al前端 | 
					## 使用说明 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 请求方法:POST | 
				
			||||||
 | 
					- 请求地址:`https://xw.al/api.php` | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 请求参数 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| **参数名称** | **类型** | **是否必须** | **示例值**              | | 
				
			||||||
 | 
					| -------- | ------ | -------- | -------------------- | | 
				
			||||||
 | 
					| url      | string | 是        | https://www.xiaoz.me | | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**请求成功:** | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```json | 
				
			||||||
 | 
					{ | 
				
			||||||
 | 
					 "url": { | 
				
			||||||
 | 
					 "keyword": "1aj1z", | 
				
			||||||
 | 
					 "url": "https://www.xiaoz.me", | 
				
			||||||
 | 
					 "title": "小z博客 - 生命不息,吾将折腾不止。", | 
				
			||||||
 | 
					 "date": "2021-01-01 05:29:35", | 
				
			||||||
 | 
					 "ip": "118.112.xxx.xxx" | 
				
			||||||
 | 
					 }, | 
				
			||||||
 | 
					 "status": "success", | 
				
			||||||
 | 
					 "message": "https://www.xiaoz.me 已保存为", | 
				
			||||||
 | 
					 "title": "小z博客 - 生命不息,吾将折腾不止。", | 
				
			||||||
 | 
					 "shorturl": "https://xw.al/1aj1z", | 
				
			||||||
 | 
					 "statusCode": 200 | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					``` | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- statusCode:状态码,请求成功为200 | 
				
			||||||
 | 
					- shorturl:返回的短网址 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**请求失败:** | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```json | 
				
			||||||
 | 
					{ | 
				
			||||||
 | 
					 "code": 403, | 
				
			||||||
 | 
					 "err_msg": "Blacklisted domain." | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					``` | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- code:请求失败的状态码 | 
				
			||||||
 | 
					- err_msg:错误原因 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 限制 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 单IP每日限制50次请求 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,74 @@ | 
				
			|||||||
 | 
					<?php | 
				
			||||||
 | 
					/* | 
				
			||||||
 | 
					 * YOURLS API | 
				
			||||||
 | 
					 * | 
				
			||||||
 | 
					 * author:xiaoz<xiaoz.me> | 
				
			||||||
 | 
					 * update:2022/03 | 
				
			||||||
 | 
					 * | 
				
			||||||
 | 
					 */ | 
				
			||||||
 | 
					header('Content-Type:application/json; charset=utf-8'); | 
				
			||||||
 | 
					//载入扩展配置文件 | 
				
			||||||
 | 
					require('ext.php'); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//默认域名,请改成你自己的域名,末尾不要带有/ | 
				
			||||||
 | 
					define("DOMAIN","https://xw.al"); | 
				
			||||||
 | 
					//每日单IP限制,就是每个IP每天可以生成多少个短链接,默认50个 | 
				
			||||||
 | 
					define("LIMIT",50); | 
				
			||||||
 | 
					//过期时间设置 | 
				
			||||||
 | 
					$today = strtotime(date("Y-m-d 23:59:59"),time()); | 
				
			||||||
 | 
					$exp_time = $today - time(); | 
				
			||||||
 | 
					//改成你自己的secret signature token,登录YOURLS后台 - 工具 - 安全的API调用 - 获取secret signature token | 
				
			||||||
 | 
					define("TOKEN",''); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//获取url | 
				
			||||||
 | 
					$url = @$_POST['url']; | 
				
			||||||
 | 
					//echo $url; | 
				
			||||||
 | 
					//exit; | 
				
			||||||
 | 
					//try{ | 
				
			||||||
 | 
					//	$url = urldecode($url); | 
				
			||||||
 | 
					//} | 
				
			||||||
 | 
					//catch(Exception $e){ | 
				
			||||||
 | 
					//  	err_msg($e->getMessage()); | 
				
			||||||
 | 
					//} | 
				
			||||||
 | 
					//如果URL不合法,直接停止 | 
				
			||||||
 | 
					if( ! filter_var($url, FILTER_VALIDATE_URL) ) { | 
				
			||||||
 | 
						err_msg('URL不合法!'); | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//获取用户IP | 
				
			||||||
 | 
					$ip = getIP(); | 
				
			||||||
 | 
					//设置key | 
				
			||||||
 | 
					$key = 'ip_'.str_replace('.','_',$ip); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//连接本地的 Redis 服务 | 
				
			||||||
 | 
					$redis = new Redis(); | 
				
			||||||
 | 
					$redis->connect('127.0.0.1', 6379); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//判断key是否存在 | 
				
			||||||
 | 
					if( ! $redis->get($key) ) { | 
				
			||||||
 | 
						$redis->set($key, '0'); | 
				
			||||||
 | 
						$redis->EXPIRE($key, $exp_time); | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					//如果key存在 | 
				
			||||||
 | 
					if ( ($redis->get($key)) || ( $redis->get($key) === '0' ) ) { | 
				
			||||||
 | 
						//获取value | 
				
			||||||
 | 
						$value = intval($redis->get($key)); | 
				
			||||||
 | 
						//如果value小于limit,则调用API | 
				
			||||||
 | 
						if( $value < LIMIT ) { | 
				
			||||||
 | 
							$api_url = DOMAIN.'/yourls-api.php?signature='.TOKEN.'&action=shorturl&format=json&url='.$url; | 
				
			||||||
 | 
							$re = curl($api_url); | 
				
			||||||
 | 
							$value = (string)($value + 1); | 
				
			||||||
 | 
							 | 
				
			||||||
 | 
							$redis->set($key, $value); | 
				
			||||||
 | 
							$redis->EXPIRE($key, $exp_time); | 
				
			||||||
 | 
							// | 
				
			||||||
 | 
							exit($re); | 
				
			||||||
 | 
						} | 
				
			||||||
 | 
						else{ | 
				
			||||||
 | 
							err_msg('今日请求上限!'); | 
				
			||||||
 | 
						} | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					//var_dump($redis->get($key)); | 
				
			||||||
 | 
					//echo $key; | 
				
			||||||
 | 
					//echo $redis->get($key); | 
				
			||||||
@ -0,0 +1,51 @@ | 
				
			|||||||
 | 
					<?php | 
				
			||||||
 | 
					//*API扩展文件*/ | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function getIP() {  | 
				
			||||||
 | 
					  if (getenv('HTTP_CLIENT_IP')) {  | 
				
			||||||
 | 
					  $ip = getenv('HTTP_CLIENT_IP');  | 
				
			||||||
 | 
					}  | 
				
			||||||
 | 
					elseif (getenv('HTTP_X_FORWARDED_FOR')) {  | 
				
			||||||
 | 
						$ip = getenv('HTTP_X_FORWARDED_FOR');  | 
				
			||||||
 | 
					}  | 
				
			||||||
 | 
						elseif (getenv('HTTP_X_FORWARDED')) {  | 
				
			||||||
 | 
						$ip = getenv('HTTP_X_FORWARDED');  | 
				
			||||||
 | 
					}  | 
				
			||||||
 | 
					  elseif (getenv('HTTP_FORWARDED_FOR')) {  | 
				
			||||||
 | 
					  $ip = getenv('HTTP_FORWARDED_FOR');  | 
				
			||||||
 | 
					}  | 
				
			||||||
 | 
					  elseif (getenv('HTTP_FORWARDED')) {  | 
				
			||||||
 | 
					  $ip = getenv('HTTP_FORWARDED');  | 
				
			||||||
 | 
					}  | 
				
			||||||
 | 
					else {  | 
				
			||||||
 | 
						$ip = $_SERVER['REMOTE_ADDR'];  | 
				
			||||||
 | 
					}  | 
				
			||||||
 | 
						return $ip;  | 
				
			||||||
 | 
					}  | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function curl($url) { | 
				
			||||||
 | 
						$ip = getIP(); | 
				
			||||||
 | 
						$curl = curl_init($url); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"); | 
				
			||||||
 | 
					    curl_setopt($curl, CURLOPT_FAILONERROR, true); | 
				
			||||||
 | 
					    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); | 
				
			||||||
 | 
					    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); | 
				
			||||||
 | 
					    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); | 
				
			||||||
 | 
					    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); | 
				
			||||||
 | 
					    curl_setopt($curl, CURLOPT_HTTPHEADER, array('CLIENT-IP: '.$ip,'X-FORWARDED-FOR: '.$ip)); | 
				
			||||||
 | 
					    #设置超时时间,最小为1s(可选) | 
				
			||||||
 | 
					    curl_setopt($curl , CURLOPT_TIMEOUT, 5); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $html = curl_exec($curl); | 
				
			||||||
 | 
					    curl_close($curl); | 
				
			||||||
 | 
					    return $html; | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function err_msg($msg) { | 
				
			||||||
 | 
						$data = [ | 
				
			||||||
 | 
							'code'		=>	403, | 
				
			||||||
 | 
							'err_msg'	=>	$msg | 
				
			||||||
 | 
						]; | 
				
			||||||
 | 
						exit(json_encode($data)); | 
				
			||||||
 | 
					} | 
				
			||||||
@ -0,0 +1,277 @@ | 
				
			|||||||
 | 
					<!DOCTYPE html> | 
				
			||||||
 | 
					<html lang="zh-cn" xmlns="http://www.w3.org/1999/xhtml"> | 
				
			||||||
 | 
					<head> | 
				
			||||||
 | 
						<meta charset="utf-8" /> | 
				
			||||||
 | 
						<title>xw.al 小五爱链短网址</title> | 
				
			||||||
 | 
						<meta name="viewport" content="width=device-width, initial-scale=1"> | 
				
			||||||
 | 
						<meta name="generator" content="EverEdit" /> | 
				
			||||||
 | 
						<meta name="author" content="xiaoz<xiaoz93@outlook.com>" /> | 
				
			||||||
 | 
						<meta name="keywords" content="xw.al,小五爱链,小五短链,短链接生成,短链接生成器,短链地址,短网址生成" /> | 
				
			||||||
 | 
						<meta name="description" content="xw.al 小五爱链是一个免费短链接生成工具,链接永久有效。" /> | 
				
			||||||
 | 
						<link rel='stylesheet' href='https://libs.xiaoz.top/font-awesome/4.7.0/css/font-awesome.min.css'> | 
				
			||||||
 | 
						<link rel="stylesheet" href="https://lib.sinaapp.com/js/bootstrap/4.3.1/css/bootstrap.min.css"> | 
				
			||||||
 | 
						<style type="text/css" media="screen"> | 
				
			||||||
 | 
							.menu { | 
				
			||||||
 | 
								width:100%; | 
				
			||||||
 | 
								background-color: #343a40!important; | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
							.content{ | 
				
			||||||
 | 
								margin-top:2em; | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
							.footer{ | 
				
			||||||
 | 
								width:100%; | 
				
			||||||
 | 
								margin-top:2em; | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
							footer { | 
				
			||||||
 | 
								/*color:#fff;*/ | 
				
			||||||
 | 
								text-align:center; | 
				
			||||||
 | 
								padding:16px; | 
				
			||||||
 | 
								line-height:1em; | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
							#qrcode{ | 
				
			||||||
 | 
								max-width:200px; | 
				
			||||||
 | 
								max-width:200px; | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
							.err_msg{ | 
				
			||||||
 | 
								position:fixed; | 
				
			||||||
 | 
								top:0; | 
				
			||||||
 | 
								text-align:center; | 
				
			||||||
 | 
								width:100%; | 
				
			||||||
 | 
								z-index:99; | 
				
			||||||
 | 
								display: none; | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
							.success_msg{ | 
				
			||||||
 | 
								position:fixed; | 
				
			||||||
 | 
								top:0; | 
				
			||||||
 | 
								text-align:center; | 
				
			||||||
 | 
								width:100%; | 
				
			||||||
 | 
								z-index:99; | 
				
			||||||
 | 
								display: none; | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
							.qr-box{ | 
				
			||||||
 | 
								display:none; | 
				
			||||||
 | 
								margin-top:2em; | 
				
			||||||
 | 
								 | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
							.qr-box img{ | 
				
			||||||
 | 
								border:1px solid #EEEEEE; | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
							.logo{ | 
				
			||||||
 | 
								padding-top:0; | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
							.tos{ | 
				
			||||||
 | 
								margin-top:2em; | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
							.promotion{ | 
				
			||||||
 | 
								margin-top:2em; | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
							.promotion img{ | 
				
			||||||
 | 
								max-width:100%; | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
							.loading{ | 
				
			||||||
 | 
								width:100%; | 
				
			||||||
 | 
								height:100%; | 
				
			||||||
 | 
								/*height:30px;*/ | 
				
			||||||
 | 
								position:absolute; | 
				
			||||||
 | 
								 | 
				
			||||||
 | 
								text-align:center; | 
				
			||||||
 | 
								/*height:30px; | 
				
			||||||
 | 
								line-height:30px;*/ | 
				
			||||||
 | 
								z-index:999; | 
				
			||||||
 | 
								display: none; | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
							.loading img{ | 
				
			||||||
 | 
								width:30px; | 
				
			||||||
 | 
								height:30px; | 
				
			||||||
 | 
								/*margin-left:auto; | 
				
			||||||
 | 
								margin-left:auto;*/ | 
				
			||||||
 | 
								margin: 0 auto; | 
				
			||||||
 | 
								position:absolute; | 
				
			||||||
 | 
								top:30%; | 
				
			||||||
 | 
								display: inline-block; | 
				
			||||||
 | 
								vertical-align: middle; | 
				
			||||||
 | 
								 | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
							.menu i { | 
				
			||||||
 | 
								padding-right:3px; | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
						</style> | 
				
			||||||
 | 
					</head> | 
				
			||||||
 | 
					<body> | 
				
			||||||
 | 
						<!--加载图标--> | 
				
			||||||
 | 
						<div class="loading"> | 
				
			||||||
 | 
							<img src = 'https://libs.xiaoz.top/material/loading/loading_37.gif' /> | 
				
			||||||
 | 
						</div> | 
				
			||||||
 | 
						<!--加载图标END--> | 
				
			||||||
 | 
						<!--错误提示框--> | 
				
			||||||
 | 
						<div class="alert alert-danger err_msg"> | 
				
			||||||
 | 
						    <strong></strong>  | 
				
			||||||
 | 
						</div> | 
				
			||||||
 | 
						<!--错误提示框END--> | 
				
			||||||
 | 
						<!--成功的提示--> | 
				
			||||||
 | 
						<div class="alert alert-success success_msg"> | 
				
			||||||
 | 
						    <strong></strong>  | 
				
			||||||
 | 
						</div> | 
				
			||||||
 | 
						<!--成功的提示END--> | 
				
			||||||
 | 
						<div class="menu"> | 
				
			||||||
 | 
							<div class="container"> | 
				
			||||||
 | 
								<div class="row"> | 
				
			||||||
 | 
									<div class="col-12"> | 
				
			||||||
 | 
										<nav class="navbar navbar-expand-sm bg-dark navbar-dark"> | 
				
			||||||
 | 
											<a class="navbar-brand logo" href="/" title = "小五爱链"><i class="fa fa-home"></i> xw.al </a> | 
				
			||||||
 | 
											<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar"> | 
				
			||||||
 | 
											    <span class="navbar-toggler-icon"></span> | 
				
			||||||
 | 
											  </button> | 
				
			||||||
 | 
											  <div class="collapse navbar-collapse" id="collapsibleNavbar"> | 
				
			||||||
 | 
										  <ul class="navbar-nav"> | 
				
			||||||
 | 
										    <li class="nav-item"> | 
				
			||||||
 | 
										      <a class="nav-link" href="/api" target = "_blank" rel = "nofollow"><i class="fa fa-code"></i> API </a> | 
				
			||||||
 | 
										    </li> | 
				
			||||||
 | 
										    <li class="nav-item"> | 
				
			||||||
 | 
										      <a class="nav-link" href="/xiaozblog" target = "_blank" rel = "nofollow"><i class="fa fa-wordpress"></i> Blog </a> | 
				
			||||||
 | 
										    </li> | 
				
			||||||
 | 
										    <li class="nav-item"> | 
				
			||||||
 | 
										      <a class="nav-link" href="/onenav" target = "_blank" rel = "nofollow"><i class="fa fa-bookmark-o"></i> OneNav导航 </a> | 
				
			||||||
 | 
										    </li> | 
				
			||||||
 | 
										    <li class="nav-item"> | 
				
			||||||
 | 
										      <a class="nav-link" href="/imgurl" target = "_blank" rel = "nofollow"><i class="fa fa-image"></i> ImgURL图床 </a> | 
				
			||||||
 | 
										    </li> | 
				
			||||||
 | 
										  </ul> | 
				
			||||||
 | 
										  </div> | 
				
			||||||
 | 
										</nav> | 
				
			||||||
 | 
									</div> | 
				
			||||||
 | 
								</div> | 
				
			||||||
 | 
							</div> | 
				
			||||||
 | 
						</div> | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						<div class="container"> | 
				
			||||||
 | 
							<!--TOS--> | 
				
			||||||
 | 
							<div class="row tos"> | 
				
			||||||
 | 
								<div class="col-md-8 offset-md-2"> | 
				
			||||||
 | 
									<div id="accordion"> | 
				
			||||||
 | 
									<div class="card"> | 
				
			||||||
 | 
									  <div class="card-header"> | 
				
			||||||
 | 
									    <a class="collapsed card-link" data-toggle="collapse" href="#collapseTwo"> | 
				
			||||||
 | 
									    使用条款 | 
				
			||||||
 | 
									  </a> | 
				
			||||||
 | 
									  </div> | 
				
			||||||
 | 
									  <div id="collapseTwo" class="collapse" data-parent="#accordion"> | 
				
			||||||
 | 
									    <div class="card-body"> | 
				
			||||||
 | 
									      <p>xw.al我为他取了个很骚气的中文名叫:小五爱链,主要提供短链接转换服务,简称小五,使用中请务必遵守以下协议。</p> | 
				
			||||||
 | 
									      <ul> | 
				
			||||||
 | 
										      <li>不得转换博彩、赌博、色情、政治、暴力、血腥、成人用品等网站。</li> | 
				
			||||||
 | 
										      <li>违法上一条协议,对短链做删除处理,不做任何通知。</li> | 
				
			||||||
 | 
										      <li>单IP每日限制50次转换。</li> | 
				
			||||||
 | 
										      <li>转换后的链接长期有效,直到项目无法维持。</li> | 
				
			||||||
 | 
										      <li>为保持良性发展,您可以进行捐赠:<a href="https://www.xiaoz.me/api/pay/" target = "_blank" rel = "nofollow">捐赠地址</a></li> | 
				
			||||||
 | 
									      </ul> | 
				
			||||||
 | 
									      <p>如有疑问,您可通过以下方式联系我。</p> | 
				
			||||||
 | 
									      <ul> | 
				
			||||||
 | 
										      <li>QQ:337003006</li> | 
				
			||||||
 | 
										      <li>QQ群1:147687134</li> | 
				
			||||||
 | 
										      <li>QQ群2:932795364</li> | 
				
			||||||
 | 
									      </ul> | 
				
			||||||
 | 
									    </div> | 
				
			||||||
 | 
									  </div> | 
				
			||||||
 | 
									</div> | 
				
			||||||
 | 
									</div> | 
				
			||||||
 | 
									 | 
				
			||||||
 | 
								</div> | 
				
			||||||
 | 
							</div> | 
				
			||||||
 | 
							<!--TOS END--> | 
				
			||||||
 | 
							<div class="row content"> | 
				
			||||||
 | 
								<!--表但--> | 
				
			||||||
 | 
								<div class="col-md-8 offset-md-2"> | 
				
			||||||
 | 
									<form> | 
				
			||||||
 | 
									  <div class="input-group mb-3"> | 
				
			||||||
 | 
									    <input type="url" id = "url" class="form-control" placeholder="请输入URL"> | 
				
			||||||
 | 
									    <div class="input-group-append"> | 
				
			||||||
 | 
									      <button type="button" class="btn btn-primary" onclick = "short();">缩短</button> | 
				
			||||||
 | 
									    </div> | 
				
			||||||
 | 
									  </div> | 
				
			||||||
 | 
									</form> | 
				
			||||||
 | 
								</div> | 
				
			||||||
 | 
								<!--表单END--> | 
				
			||||||
 | 
							</div> | 
				
			||||||
 | 
							<!--结果--> | 
				
			||||||
 | 
							<div class="row"> | 
				
			||||||
 | 
								<div class="col-md-8 offset-md-2"> | 
				
			||||||
 | 
									<!--结果左侧--> | 
				
			||||||
 | 
									<div class=""> | 
				
			||||||
 | 
										<div><label>短网址:</label></div> | 
				
			||||||
 | 
										<form> | 
				
			||||||
 | 
									    <div class="input-group mb-3"> | 
				
			||||||
 | 
									      <input type="text" class="form-control" id="short_url"> | 
				
			||||||
 | 
									      <div class="input-group-append"> | 
				
			||||||
 | 
									      	<button type="button" id = "copy" class="btn btn-primary" onclick = "copy_url();">复制</button> | 
				
			||||||
 | 
									    </div> | 
				
			||||||
 | 
									    </div> | 
				
			||||||
 | 
									  </form> | 
				
			||||||
 | 
									</div> | 
				
			||||||
 | 
									<!--结果左侧END--> | 
				
			||||||
 | 
									<!--结果右侧--> | 
				
			||||||
 | 
									<div class="qr-box"> | 
				
			||||||
 | 
										<div style = "padding-bottom:16px;text-align:center;">扫码访问:</div> | 
				
			||||||
 | 
										<div class = "qrcode"><center><img id = "qrcode" src="" alt=""></center></div> | 
				
			||||||
 | 
									</div> | 
				
			||||||
 | 
									<!--结果右侧END--> | 
				
			||||||
 | 
								</div> | 
				
			||||||
 | 
							</div> | 
				
			||||||
 | 
							<!--结果END--> | 
				
			||||||
 | 
							<!--banner--> | 
				
			||||||
 | 
							<div class="row promotion"> | 
				
			||||||
 | 
								<div class="col-md-8 offset-md-2"> | 
				
			||||||
 | 
									<center><a href="https://xw.al/nodecache" rel = "nofollow" target = "_blank"><img src="https://www.xiaoz.me/wp-content/uploads/2020/12/node_banner.jpg" alt=""></a></center> | 
				
			||||||
 | 
								</div> | 
				
			||||||
 | 
							</div> | 
				
			||||||
 | 
							<!--banner end--> | 
				
			||||||
 | 
						</div> | 
				
			||||||
 | 
						<!--底部footer--> | 
				
			||||||
 | 
						<div class="footer"> | 
				
			||||||
 | 
						<footer class = ""> | 
				
			||||||
 | 
							© 2022 Powered by <a target = "_blank" href="https://xw.al" title = "小五爱链" rel = "nofollow">xw.al</a>.The author is <a href="https://www.xiaoz.me/" target="_blank" title = "小z博客">xiaoz.me</a> | 
				
			||||||
 | 
						</footer> | 
				
			||||||
 | 
						</div> | 
				
			||||||
 | 
						<!--底部footer end--> | 
				
			||||||
 | 
					</body> | 
				
			||||||
 | 
					<script src = 'https://libs.xiaoz.top/jquery/2.2.4/jquery.min.js'></script> | 
				
			||||||
 | 
					<script src = 'https://libs.xiaoz.top/clipBoard.js/clipBoard.min.js'></script> | 
				
			||||||
 | 
					<script src="https://lib.sinaapp.com/js/bootstrap/4.3.1/js/bootstrap.min.js"></script> | 
				
			||||||
 | 
					<script> | 
				
			||||||
 | 
					function short(){ | 
				
			||||||
 | 
						var url = $("#url").val(); | 
				
			||||||
 | 
						$(".loading").show(); | 
				
			||||||
 | 
						$.post("/api.php",{"url":url},function(data,status){ | 
				
			||||||
 | 
							if(data.statusCode == 200) { | 
				
			||||||
 | 
								$("#short_url").val(data.shorturl); | 
				
			||||||
 | 
								$('#qrcode').attr('src', 'https://qr.rss.ink/v1/?text=' + data.shorturl); | 
				
			||||||
 | 
								$(".loading").hide(); | 
				
			||||||
 | 
								$(".qr-box").show(); | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
							else if( data.code == 403 ) { | 
				
			||||||
 | 
								$(".err_msg strong").text(data.err_msg); | 
				
			||||||
 | 
								$("#short_url").val(''); | 
				
			||||||
 | 
								$(".qr-box").hide(); | 
				
			||||||
 | 
								$(".loading").hide(); | 
				
			||||||
 | 
								$(".err_msg").show(); | 
				
			||||||
 | 
								$(".err_msg").fadeOut(5000); | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
						}); | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					function copy_url(){ | 
				
			||||||
 | 
						var copy = new clipBoard(document.getElementById('copy'), { | 
				
			||||||
 | 
							beforeCopy: function() { | 
				
			||||||
 | 
								 | 
				
			||||||
 | 
							}, | 
				
			||||||
 | 
							copy: function() { | 
				
			||||||
 | 
								return document.getElementById('short_url').value; | 
				
			||||||
 | 
							}, | 
				
			||||||
 | 
							afterCopy: function() { | 
				
			||||||
 | 
								$(".success_msg strong").text('链接已复制!'); | 
				
			||||||
 | 
								$(".success_msg").show(); | 
				
			||||||
 | 
								$(".success_msg").fadeOut(5000); | 
				
			||||||
 | 
							} | 
				
			||||||
 | 
						}); | 
				
			||||||
 | 
					} | 
				
			||||||
 | 
					</script> | 
				
			||||||
 | 
					</html> | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue