我设法将以下脚本放在一起:
<?php
/* make a URL small */
function make_bitly_url($url,$login,$appkey,$format = 'xml',$version = '2.0.1')
{
//create the URL
$bitly = 'http://api.bit.ly/shorten?version='.$version.'&longUrl='.urlencode($url).'&login='.$login.'&apiKey='.$appkey.'&format='.$format;
//get the url
//could also use cURL here
$response = file_get_contents($bitly);
//parse depending on desired format
if(strtolower($format) == 'json')
{
$json = @json_decode($response,true);
return $json['results'][$url]['shortUrl'];
}
else //xml
{
$xml = simplexml_load_string($response);
return 'http://bit.ly/'.$xml->results->nodeKeyVal->hash;
}
}
//function to get the url of the event!
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;
}
/* usage */
$short = make_bitly_url('http://site.com/viewEvent.php?id=2323232','bitlyuser','bitlyapikey','json');
echo 'The short URL is: '.$short . "<br>";
echo "PATH: ". curPageURL();
// returns: http://bit.ly/11Owun
?>
现在这段代码可以生成传递给它的任何内容的简短网址。我的网站上有一条推文按钮,来自twitter developer site。它的工作原理是它发布了当前页面的完整链接...所以不是缩短版本。现在我想要按下twitter按钮,它会生成一个简短的URL,以便我可以在我的网站上分享。怎么做的?
谢谢,
答案 0 :(得分:3)
您应该只能将data-url
选项设置为bitly url。 e.g。
<a href="https://twitter.com/share" class="twitter-share-button" data-url="<?php echo make_bitly_url('http://'.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"],LOGIN,APPKEY); ?>">Tweet</a>