既然我们已经弄清楚了如何使用 PHP 远程创建 TinyURL URL,我们不妨创建一个支持 AJAX 的小型 URL 创建器。使用 MooTools 做到这一点几乎太容易了。
XHTML(表单)
<p><strong>URL:</strong> <input type="text" id="url" size="40" /> <input type="button" id="geturl" value="Get URL" /></p> <p id="newurl"></p>
我们需要一个输入框,用户可以在其中输入他们的 URL,一个触发流程的按钮,以及一个用于放置新的小 URL 的占位符。
PHP
if(isset($_GET['url']))
{
die(get_tiny_url(urldecode($_GET['url'])));
}
//gets the data from a URL
function get_tiny_url($url)
{
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,'http://tinyurl.com/api-create.php?url='.$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
此 PHP 代码段从 TinyURL 抓取并返回微型 URL。
MooTools JavaScript
window.addEvent('domready',function() {
var TinyURL = new Class({
//implements
Implements: [Options],
//options
options: {
checkURL: ''
},
//initialization
initialize: function(options) {
//set options
this.setOptions(options);
},
//a method that does whatever you want
createURL: function(url,complete) {
var req = new Request({
url: this.options.checkURL + '?url=' + url,
method: 'get',
async: false,
onComplete: function(response) { complete(response); }
}).send();
}
});
// usage //
var new_tiny_url = new TinyURL({
checkURL: 'grab-tiny-url.php'
});
$('geturl').addEvent('click',function() {
if($('url').value) {
var newu = new_tiny_url.createURL($('url').value,function(resp) {
$('newurl').set('html','The TinyURL is ' + resp + '. Go ahead, try it!').setStyle('color','green');
});
}
});
});
只是一个很小的 MooTools 类和基本用法。唯一的参数“checkURL”是上面 PHP 片段的 URL——不是我们想要压缩的长 URL。真正的动作发生在调用 createURL() 方法时。您向该方法传递一个要缩短的 URL 和一个“onComplete”函数,该函数在收到 URL 时采取行动。
TinyURL 是一项很棒的服务!
