如何创建自己的短网址服务
来源:互联网 发布:c语言编程入门教程 编辑:程序博客网 时间:2024/04/29 13:39
由于现在使用Twitter服务的越来越多,短网址服务也越来越受欢迎。 因此越来越多的第三方的短网址服务开始大批量创建。
如果你有兴趣,那么请跟随本文,这里将教大家如何使用Google短网址的API来创建我们自己简单的短网址服务。 Let's go!
以下是本文的目录
- 1. 准备
- 2. 创建 index.php
- 3. 创建gen.php
- 4. 演示
- 5. 下载
- 6. 结束
内容
1. 准备
创建两个PHP文件,并命名为 "index.php" 和"gen.php"。
- 1 index.php: 首页。
- 2 gen.php: 服务端调用Google短网址服务API。 我们不能使用JavaScript直接(跨域)从谷歌获得数据。
- 3 从http://code.google.com/apis/urlshortener/v1/getting_started.html#APIKey , 获得谷歌的API密钥,此密钥将用于从谷歌查询数据,这个是关键点。
- 4 复制和粘贴图片"load.gif" 到"index.php"同目录下。 此图片将用于AJAX的等待加载提示。
2. 创建 index.php
先创建一个简单的HTML原型的index.php页面:
01
<
html
>
02
<
head
>
03
</
head
>
04
<
body
>
05
<
div
id
=
"container"
>
06
<
h1
>Google URL Shortener</
h1
>
07
<
div
id
=
"generator"
>
08
<
form
id
=
"form"
action
=
"#"
method
=
"post"
>
09
<
fieldset
>
10
<
input
type
=
"text"
name
=
"url"
id
=
"short"
>
11
<
input
type
=
"submit"
value
=
"Shorten"
></
input
>
12
<
div
class
=
"loading"
></
div
>
13
</
fieldset
>
14
</
form
>
15
</
div
>
16
</
div
>
17
</
body
>
18
</
html
>
这里将创建一个简单的文本框和提交按钮。
效果如下:
接下来,让我们添加一些CSS样式,使它更好看些。代码如下:
01
<
html
>
02
<
head
>
03
<
style
>
04
body{
05
width:100%;
06
margin:0px;
07
padding:0px;
08
}
09
#container{
10
font-family: Arial, serif;
11
font-size:12px;
12
padding-top:20px;
13
width:700px;
14
margin: auto;
15
}
16
form{
17
width:100%;
18
padding: 0px;
19
margin: 0px;
20
}
21
form fieldset{
22
padding:20px;
23
}
24
form input{
25
padding:5px;
26
font-size:14px;
27
}
28
form input[type=text]{
29
float:left;
30
width:80%;
31
border: 1px solid #CCCCCC;
32
}
33
form input[type=submit]{
34
width:10%;
35
margin-left:5px;
36
float:left;
37
border: 1px solid #CCCCCC;
38
background: #DDDDDD;
39
cursor: pointer;
40
}
41
div.loading{
42
display:none;
43
margin:5px;
44
float:left;
45
width:16px;
46
height:16px;
47
background-image: url("load.gif");
48
background-repeat: no-repeat;
49
background-position: top left;
50
background-color: transparent;
51
}
52
</
style
>
53
</
head
>
54
<
body
>
55
<
div
id
=
"container"
>
56
<
h1
>Google URL Shortener</
h1
>
57
<
div
id
=
"generator"
>
58
<
form
id
=
"form"
action
=
"#"
method
=
"post"
>
59
<
fieldset
>
60
<
input
type
=
"text"
name
=
"url"
id
=
"short"
>
61
<
input
type
=
"submit"
value
=
"Shorten"
></
input
>
62
<
div
class
=
"loading"
></
div
>
63
</
fieldset
>
64
</
form
>
65
</
div
>
66
</
div
>
67
</
body
>
68
</
html
>
我们这里就不对CSS样式进行说明了。
请注意,我们还要创建了一个"class='loading'"的"DIV" 层,这用于Ajax的加载;默认情况它是不显示的,我们使用jQuery控制它的隐藏显示。
完成"index.php"的最后一步,也是最重要的一步,我们将导入jQuery库来完成Ajax操作。
复制并粘贴以下的JavaScript代码到CSS样式下面。我们稍后将作解释。
01
<
html
>
02
<
head
>
03
<
style
>
04
body{
05
width:100%;
06
margin:0px;
07
padding:0px;
08
}
09
#container{
10
font-family: Arial, serif;
11
font-size:12px;
12
padding-top:20px;
13
width:700px;
14
margin: auto;
15
}
16
form{
17
width:100%;
18
padding: 0px;
19
margin: 0px;
20
}
21
form fieldset{
22
padding:20px;
23
}
24
form input{
25
padding:5px;
26
font-size:14px;
27
}
28
form input[type=text]{
29
float:left;
30
width:80%;
31
border: 1px solid #CCCCCC;
32
}
33
form input[type=submit]{
34
width:10%;
35
margin-left:5px;
36
float:left;
37
border: 1px solid #CCCCCC;
38
background: #DDDDDD;
39
cursor: pointer;
40
}
41
div.loading{
42
display:none;
43
margin:5px;
44
float:left;
45
width:16px;
46
height:16px;
47
background-image: url("load.gif");
48
background-repeat: no-repeat;
49
background-position: top left;
50
background-color: transparent;
51
}
52
</
style
>
53
<
script
src
=
"http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"
></
script
>
54
<
script
>
55
$(document).ready(function(){
56
$('#form').submit(function(){
57
$.ajax({
58
type: "POST",
59
url: "gen.php",
60
data: $(this).serialize(),
61
beforeSend: function(){
62
$('.loading').show(1);
63
},
64
complete: function(){
65
$('.loading').hide(1);
66
},
67
success: function(data){
68
$('#short').val(data);
69
}
70
});
71
return false;
72
});
73
});
74
</
script
>
75
</
head
>
76
<
body
>
77
<
div
id
=
"container"
>
78
<
h1
>Google URL Shortener</
h1
>
79
<
div
id
=
"generator"
>
80
<
form
id
=
"form"
action
=
"#"
method
=
"post"
>
81
<
fieldset
>
82
<
input
type
=
"text"
name
=
"url"
id
=
"short"
>
83
<
input
type
=
"submit"
value
=
"Shorten"
></
input
>
84
<
div
class
=
"loading"
></
div
>
85
</
fieldset
>
86
</
form
>
87
</
div
>
88
</
div
>
89
</
body
>
90
</
html
>
让我们来仔细看看,上面添加在那些的JavaScript代码:
01
<
script
src
=
"http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"
></
script
>
<!-- setp 1 -->
02
<
script
>
03
$(document).ready(function(){
04
$('#form').submit(function(){ //step 2
05
$.ajax({ //step 3
06
type: "POST",
07
url: "gen.php",
08
data: $(this).serialize(),
09
beforeSend: function(){ //step 4
10
$('.loading').show(1);
11
},
12
complete: function(){ //step 5
13
$('.loading').hide(1);
14
},
15
success: function(data){ //step 6
16
$('#short').val(data);
17
}
18
});
19
return false;
20
});
21
});
22
</
script
>
- 第1步:使用谷歌提供的jQuery库。
- 第2步:一个提交的事件处理程序。
- 第3步:使用“POST”方法的数据序列化形式,提交表单数据到“gen.php”。
- 第4步:发送数据时,显示加载的DIV层。
- 第5步:AJAX操作完成时,隐藏加载的DIV层 。
- 第6步:将AJAX完成的数据显示在文本框中。
接下来,我们继续完成“gen.php”,它涉及Google的短网址API。
3. 创建 gen.php
复制并粘贴以下代码,完成“gen.php”。
01
<?php
02
//1
03
if
(isset(
$_REQUEST
[
'url'
])&&!
empty
(
$_REQUEST
[
'url'
])){
04
//2
05
$longUrl
=
$_REQUEST
[
'url'
];
06
$apiKey
=
'Your-Api-Key'
;
07
//3
08
$postData
=
array
(
'longUrl'
=>
$longUrl
,
'key'
=>
$apiKey
);
09
$jsonData
= json_encode(
$postData
);
10
//4
11
$curlObj
= curl_init();
12
curl_setopt(
$curlObj
, CURLOPT_URL,
'https://www.googleapis.com/urlshortener/v1/url'
);
13
curl_setopt(
$curlObj
, CURLOPT_RETURNTRANSFER, 1);
14
curl_setopt(
$curlObj
, CURLOPT_SSL_VERIFYPEER, 0);
15
curl_setopt(
$curlObj
, CURLOPT_HEADER, 0);
16
curl_setopt(
$curlObj
, CURLOPT_HTTPHEADER,
array
(
'Content-type:application/json'
));
17
curl_setopt(
$curlObj
, CURLOPT_POST, 1);
18
curl_setopt(
$curlObj
, CURLOPT_POSTFIELDS,
$jsonData
);
19
//5
20
$response
= curl_exec(
$curlObj
);
21
$json
= json_decode(
$response
);
22
//6
23
curl_close(
$curlObj
);
24
//7
25
if
(isset(
$json
->error)){
26
echo
$json
->error->message;
27
}
else
{
28
echo
$json
->id;
29
}
30
}
else
{
31
echo
'Please enter a URL'
;
32
}
33
?>
在我解释这段代码之前,请先在第6行处提供你的“Google API密钥”。
- 1. 当提交的数据($_REQUEST ['URL'])不存在,则它会响应一个错误消息(“请输入网址”)。
- 2. 从$_REQUEST中得到URL。
- 3. 创建一个JSON数据,包含URL和谷歌API密钥。这个JSON数据将被发送到Google作为请求参数。
- 4. 使用PHP的cURL连接谷歌API服务器。
- 5. 从谷歌获取数据,并解码JSON对象。
- 6. 关闭cURL连接。
- 7. 如果返回数据有错误,就返回错误信息,否则显示短URL。
大功告成。现在你可以去体验以下自己的短网址服务了。
4. 演示
从这里你可以 现场演示 .
5. 下载
你也可以从GitHub帐户,下载此 脚本。
6. 结束
感谢您看完这篇文章,希望它能对你有所帮助。
- 如何创建自己的短网址服务
- 教大家如何设计实现自己的PHP短网址服务
- 使用短网址服务--百度的短网址API
- 51822如何创建自己的服务
- 闲话“短网址”服务
- 利用google的短网址服务去实现简化网址
- 如何使用google短网址goo.gl服务
- Serverless 架构应用开发指南:创建自己的 Serverless 短链服务
- 短网址服务系统 设计
- 百度 API 生成短网址自己测试的例子
- 短网址服务可能泄露你的敏感信息
- 创建自己的搜索服务
- 靠谱的短网址生成是如何做到的
- google短网址服务API函数
- 短网址(Short URL)服务
- 调用新浪网址缩短服务生成网址短链接
- 如何创建网址快捷方式
- 短网址的简单实现
- ssss
- sql 语法
- JFreeChart中文API
- 输出所有 wmic 的 list full, 用关键字搜索结果
- 一个十分巧妙的递归,输出排列
- 如何创建自己的短网址服务
- ERP系统
- Android应用底部导航栏(选项卡)实例
- Java中实现对象的比较
- Test VNC Server on XserverSanityGnome-s10u11b10-x86
- POJ-3259(bellman-ford判断有没有负权路)
- #,##,__VA_ARGS__的用法
- 百度文库免财富值下载漏洞
- 《精通Hibernate》学习(8)——Hibernate的检索方式(下)