既然我们已经弄清楚了如何使用 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 是一项很棒的服务!