2

我正在尝试通过 API 缩短链接并使用 JSON 获得结果

有关 API 的一些信息

样本响应

{"error":0,"short":"http:\/\/doma.in\/sf0x6"}

PHP 中的示例用法

$content=@file_get_contents("http://doma.in/api/?url=http://www.google.com&api=APIKEY");

$url=json_decode($content,TRUE);//Decodes json into an array

if(!$url["error"]){  // If there is no error
  echo $url["short"]; //Outputs the short url
}
else{ 
  echo $url["msg"]; //Outputs the error message
}

请求缩短长 URL

GET http://doma.in/api/?url=http://www.google.com&api=APIKEY

*json_short.php*

function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}

$url = curPageURL();

$json_short = @file_get_contents("http://doma.in/api/?url=$url&api=APIKEY");
echo $json_short;

*json_short.js*

$.getJSON('json_short.php', function(data) {
    if(!data.error){ // If there is no error
        alert(data.short) //Outputs the short url
    }
    else{
        alert(data.msg)
    }
});
4

1 回答 1

0

使用 JavaScript 简化流程:

var foo = window.location.href;
var bar = foo.replace(/[a-z0-9.]+\//g, shortener);

function shortener(match, pos, fullstring)
  {
  if (shortener.count === foo.match(/[a-z0-9.]+\//g).length)
    {
    shortener.count = 0;
    }
  else
    {
    shortener.count = shortener.count + 1 || 0;
    }
  if (shortener.count === 1)
    {
    return "";
    }

   else
    {
    return match;
    }
  }
于 2015-06-02T03:40:34.383 回答