最近 Ajax 技術を学んでいるので、よく小さな Demo をいくつか作っています。例えば、以前作った「jQuery でオンライン QQ 名称とアバターを取得」です。今日紹介するものも Ajax プロジェクトの一つで、主な機能は t.cn の新浪短縮 URL をオンラインで生成することです。ネット上で多くの URL 短縮サービスを見てきましたが、どれも URL を入力してからボタンをクリックして実行する必要があります。私のものはその必要がありません。
HTMLコード
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>在线生成 t.cn 短网址</title>
<script src="https://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<div> 长链接 <input type="text" name="" id="longurl" value="" /></div><br>
<div> 短链接 <input type="text" name="" id="shorturl" value="" /></div><br>
<script>
$("#longurl").blur(function() {
var url = $("#longurl").val();
$.ajax({
type: "get",
url: "https://v1.ikxin.com/api/tcnurl.php?from=txt&url=" + url,
success: function(data) {
$("#shorturl").val(data);
},
error: function() {
$("#shorturl").val("获取失败");
}
});
})
</script>
</body>
</html>
PHP コード
<?php
$apiurl = 'http://api.t.sina.com.cn/short_url/shorten.json'; // 新浪短网址 json 接口
$source = '3271710248'; // 新浪 source 验证码
$geturl = $_GET ['url'];
$format = $_GET ['format'];
switch ($format){
case "text":
if(substr($geturl, 0, 4) != 'http'){
echo "您的输入有误!";
}else{
$suo_url = sprintf($apiurl.'?source='.$source.'&url_long='.$geturl);
$dwzcode = file_get_contents($suo_url);
$dwz = str_replace(array('[',']'), '', $dwzcode);
$dwzurl = json_decode($dwz,true);
echo $dwzurl['url_short'];
}
break;
case "json":
if(substr($geturl, 0, 4) != 'http'){
echo "您的输入有误!";
}else{
$suo_url = sprintf($apiurl.'?source='.$source.'&url_long='.$geturl);
$dwzcode = file_get_contents($suo_url);
$oldarr = array('[',']','url_short','url_long',',"type":0');
$newarr = array('','','shorturl','longurl','');
$dwz = str_replace($oldarr, $newarr, $dwzcode);
echo $dwz;
}
break;
case "jsonp":
if(substr($geturl, 0, 4) != 'http'){
echo "您的输入有误!";
}else{
$suo_url = sprintf($apiurl.'?source='.$source.'&url_long='.$geturl);
$dwzcode = file_get_contents($suo_url);
$oldarr = array('[',']','url_short','url_long',',"type":0','{','}');
$newarr = array('','','shorturl','longurl','','callbackUrl({','})');
$dwz = str_replace($oldarr, $newarr, $dwzcode);
echo $dwz;
}
break;
default:
echo "您的输入有误!";
}